{"id":30304644,"url":"https://github.com/chenasraf/nextcloud-jukebox","last_synced_at":"2025-08-17T07:11:19.126Z","repository":{"id":297696032,"uuid":"997426084","full_name":"chenasraf/nextcloud-jukebox","owner":"chenasraf","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-09T01:24:36.000Z","size":1052,"stargazers_count":1,"open_issues_count":11,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-09T10:49:30.426Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chenasraf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"chenasraf","patreon":null,"open_collective":null,"ko_fi":"casraf","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=TSH3C3ABGQM22\u0026currency_code=ILS\u0026source=url"]}},"created_at":"2025-06-06T14:02:08.000Z","updated_at":"2025-06-21T17:21:33.000Z","dependencies_parsed_at":"2025-06-06T22:30:53.445Z","dependency_job_id":"4dfd231b-65a6-402f-af19-81be891c591b","html_url":"https://github.com/chenasraf/nextcloud-jukebox","commit_stats":null,"previous_names":["chenasraf/nextcloud-jukebox"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chenasraf/nextcloud-jukebox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenasraf%2Fnextcloud-jukebox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenasraf%2Fnextcloud-jukebox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenasraf%2Fnextcloud-jukebox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenasraf%2Fnextcloud-jukebox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chenasraf","download_url":"https://codeload.github.com/chenasraf/nextcloud-jukebox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenasraf%2Fnextcloud-jukebox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270818434,"owners_count":24651177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-17T07:11:14.334Z","updated_at":"2025-08-17T07:11:19.087Z","avatar_url":"https://github.com/chenasraf.png","language":"PHP","funding_links":["https://github.com/sponsors/chenasraf","https://ko-fi.com/casraf","https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=TSH3C3ABGQM22\u0026currency_code=ILS\u0026source=url","https://ko-fi.com/casraf'"],"categories":[],"sub_categories":[],"readme":"\u003c!--\nSPDX-FileCopyrightText: Chen Asraf \u003ccontact@casraf.dev\u003e\nSPDX-License-Identifier: CC0-1.0\n--\u003e\n\n# Jukebox\n\n**Jukebox** is a Nextcloud app for streaming and organizing all your audio content in one place.  \nIt supports music files, podcasts (with gPodder sync), audiobooks, YouTube videos, and online radio.\n\n## Features\n\n- 🎵 Play local music files\n- 🎙️ Sync and stream podcasts using [gPodder](https://gpodder.net/)\n- 📚 Listen to audiobooks with resume support\n- 📺 Embed and play YouTube videos\n- 📻 Tune in to online radio streams\n\n## Installation\n\nDownload the app from [Nextcloud's App Store](https://apps.nextcloud.com/apps/jukebox) through your\nNextcloud instance.\n\nIf you prefer to download manually, you can download the latest version from GitHub and install\ndirectly:\n\n1. Place this app in **nextcloud/apps/** or **nextcloud/custom_apps/**\n\n2. Here is a quick installation script you can use as base. Modify the first variable lines to match\n   your setup:\n\n   ```bash\n   pushd \"/path/to/root/of/nextcloud/custom_apps\"\n\n   APPVER=$(curl -s https://api.github.com/repos/chenasraf/nextcloud-jukebox/releases/latest | grep tag_name | grep -Eo 'v[^\"]+') \u0026\u0026 \\\n   curl -L https://github.com/chenasraf/nextcloud-jukebox/releases/download/${APPVER}/jukebox-${APPVER}.tar.gz -o jukebox.tar.gz \u0026\u0026 \\\n   tar xfv jukebox.tar.gz \u0026\u0026 \\\n   rm -rf jukebox.tar.gz\n   ```\n\n3. Then enable the app as you normally would from Nextcloud's Apps page.\n\n## Contributing\n\nI am developing this package on my free time, so any support, whether code, issues, or just stars is\nvery helpful to sustaining its life. If you are feeling incredibly generous and would like to donate\njust a small amount to help sustain this project, I would be very very thankful!\n\n\u003ca href='https://ko-fi.com/casraf' target='_blank'\u003e\n  \u003cimg height='36' style='border:0px;height:36px;'\n    src='https://cdn.ko-fi.com/cdn/kofi1.png?v=3'\n    alt='Buy Me a Coffee at ko-fi.com' /\u003e\n\u003c/a\u003e\n\nI welcome any issues or pull requests on GitHub. If you find a bug, or would like a new feature,\ndon't hesitate to open an appropriate issue and I will do my best to reply promptly.\n\n## Development\n\n### Automation\n\nMost development processes are automated:\n\n- **GitHub Actions** run tests, builds, and validations on each push or pull request.\n- **Pre-commit formatting** is handled by [lint-staged](https://github.com/okonet/lint-staged),\n  which automatically formats code before committing:\n\n\u003e 🛠️ The NPM package [husky](https://www.npmjs.com/package/husky) takes care of installing the\n\u003e pre-commit hook automatically after `pnpm install`.\n\n---\n\n### Manual Commands\n\nWhile automation handles most workflows, the following commands are available for local development\nand debugging:\n\n#### Build the App\n\n```bash\nmake\n```\n\nInstalls dependencies and compiles frontend/backend assets.\n\n#### Run Tests\n\n```bash\nmake test\n```\n\nRuns unit and integration tests (if available).\n\n#### Format \u0026 Lint\n\n```bash\nmake format   # Auto-fix code style\nmake lint     # Check code quality\n```\n\n#### Generate OpenAPI Docs\n\n```bash\nmake openapi\n```\n\nOutput is saved to `build/openapi/openapi.json`.\n\n#### Packaging for Release\n\n```bash\nmake appstore    # Production build for Nextcloud app store\nmake source      # Full source package\nmake distclean   # Clean build artifacts and dependencies\n```\n\n#### Sign Releases\n\nAfter uploading the archive to GitHub:\n\n```bash\nmake sign\n```\n\nDownloads the `.tar.gz` release, verifies it, and prints a SHA-512 signature using your key at\n`~/.nextcloud/certificates/jukebox.key`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenasraf%2Fnextcloud-jukebox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchenasraf%2Fnextcloud-jukebox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenasraf%2Fnextcloud-jukebox/lists"}