{"id":22696133,"url":"https://github.com/zdimension/plexdlweb","last_synced_at":"2025-04-13T03:25:14.308Z","repository":{"id":208278542,"uuid":"694707007","full_name":"zdimension/plexdlweb","owner":"zdimension","description":"A simple web UI for downloading media from Plex without the Plex Pass.","archived":false,"fork":false,"pushed_at":"2024-12-31T19:47:45.000Z","size":59,"stargazers_count":12,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T20:21:51.537Z","etag":null,"topics":["plex"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zdimension.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"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},"funding":{"github":"zdimension","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2023-09-21T14:28:47.000Z","updated_at":"2024-12-31T19:47:49.000Z","dependencies_parsed_at":"2024-01-18T01:10:58.630Z","dependency_job_id":"858d8202-36d5-470d-a596-f4930eb26050","html_url":"https://github.com/zdimension/plexdlweb","commit_stats":null,"previous_names":["zdimension/plexdlweb"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdimension%2Fplexdlweb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdimension%2Fplexdlweb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdimension%2Fplexdlweb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdimension%2Fplexdlweb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zdimension","download_url":"https://codeload.github.com/zdimension/plexdlweb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248658547,"owners_count":21140962,"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","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":["plex"],"created_at":"2024-12-10T04:14:23.395Z","updated_at":"2025-04-13T03:25:14.294Z","avatar_url":"https://github.com/zdimension.png","language":"Python","readme":"# PlexDLWeb\n\nA simple web UI for downloading media from Plex without the Plex Pass.\n\n![chrome_ZpHRswxRB1](https://github.com/zdimension/plexdlweb/assets/4533568/c085d892-78d6-48ab-8290-55677daaac41)\n\nUses [Python-PlexAPI](https://github.com/pkkid/python-plexapi) and [NiceGUI](https://github.com/zauberzeug/nicegui).\n\n## Requirements\n\n- Should work on any Linux (tested on Debian 11), may work on Windows\n- Python 3.9+\n\n## Features\n\n- [x] Login with Plex account (owner or user)\n- [x] Search across an entire Plex server\n- [x] Download movies and episodes\n- [x] Browse collections, shows, and seasons\n- [x] Choose between multiple versions of a media item\n- [ ] Provide a torrent download in addition to the direct download (planned)\n  - This will probably use an embedded torrent client, and generate a unique torrent file valid for 12 or 24 hours. Useful if your connection is too unstable to download the file through HTTP.\n- [ ] Auto-update through Git, like Tautulli (planned)\n\n## Basic setup\n\nYou will need your server address (e.g. `http://plex.johndoe.com:32400` or `http://127.0.0.1:32400`) and ID. You can get the ID by opening `https://plex.johndoe.com/identity` (replace with your URL). You'll get something like this:\n\n```xml\n\u003cMediaContainer size=\"0\" claimed=\"1\" machineIdentifier=\"abcdef123456abcdef123456abcdef123456abcd\" version=\"1.32.5.7516-8f4248874\"\u003e \u003c/MediaContainer\u003e\n```\n\nThe ID is the `abcdef123456abcdef123456abcdef123456abcd`.\n\n### Standalone\n\n```bash\ngit clone https://github.com/zdimension/plexdlweb\ncd plexdlweb\npip3 install -r requirements.txt\npython3 __main__.py  # will generate a config.json file, edit it and start again\n```\n\n### Systemd service\n\n```bash\nmkdir /opt/plexdlweb \u0026\u0026 cd /opt/plexdlweb  # you can change the path here\n\nuseradd -d $(pwd) plexdlweb\n\ngit clone https://github.com/zdimension/plexdlweb .\nchown -R plexdlweb .\n\nsudo -u plexdlweb sh -c \"pip3 install -r requirements.txt \u0026\u0026 python3 __main__.py\"\nnano config.json  # edit config here\nsudo -u plexdlweb python3 __main__.py  # make sure it works before setting up the service\n\nsed -i \"s%{PATH}%$(pwd)%g\" plexdlweb.service\nchown root plexdlweb.service\nln -s \"$(realpath plexdlweb.service)\" /etc/systemd/system/plexdlweb.service\n\nservice plexdlweb start\nsystemctl enable plexdlweb\n```\n\n### Dockerfile\n\nThis will fetch the latest Docker image.\n\n```bash\ndocker run -d -p 8766:8766 \\\n  -e PDW_SERVER_URL=http://plex.johndoe.com:32400 \\\n  -e PDW_SERVER_ID=abcdef123456abcdef123456abcdef123456abcd \\\n  -e PDW_LANG=en \\\n  -v /thing/movies:/thing/movies \\\n  -v /thing/tvshows:/thing/tvshows \\\n  zdimension1/plexdlweb\n```\n\nYou can also build from source like this:\n\n```bash\ngit clone https://github.com/zdimension/plexdlweb\ncd plexdlweb\ndocker build -t plexdlweb .\n```\n\n## Updating\n\nAs mentioned, an update system is planned. In the meantime, just `git pull` and restart the service.\n\n## Rationale\n\nPlex is an amazing piece of software. Time isn't free, and Plex Inc. needs money. I paid €120 for the Plex Pass so my friends and family can use my server at its full potential (hardware transcoding, credits skipping, etc).\n\nHowever, since August 1st, 2022, the server owner having a Plex Pass isn't sufficient for users to be able to download. **Each user** must have the Pass. We're not talking about a *complex* feature, again, like transcoding or credits detection. *Downloading files*. I could do that with Apache 20 years ago with a 10-line httpd.conf file.\n\nMy users travel. My users take the train, the plane, and go in a number of different places where they don't have a stable connection, and they need to be able to download files for offline viewing. This is not negociable. And giving an SFTP access is not acceptable, most of my users are not computer-literate.\n\n## License\n\nThis project is licensed under the GPLv3 license.\n","funding_links":["https://github.com/sponsors/zdimension"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzdimension%2Fplexdlweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzdimension%2Fplexdlweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzdimension%2Fplexdlweb/lists"}