{"id":13479693,"url":"https://github.com/xcodian/youtube-dl-web","last_synced_at":"2025-03-27T10:30:33.727Z","repository":{"id":41149956,"uuid":"453576746","full_name":"xcodian/youtube-dl-web","owner":"xcodian","description":"A good web interface for youtube-dl that allows you to download arbitrary mixes of audio and video, including up to the highest quality such as 8K.","archived":false,"fork":false,"pushed_at":"2024-09-04T11:28:25.000Z","size":635,"stargazers_count":266,"open_issues_count":8,"forks_count":61,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-11-10T15:03:50.125Z","etag":null,"topics":["docker","docker-compose","downloader","fastapi","gui","https","material-design","nginx","react","typescript","youtube","youtube-dl","youtube-dl-gui","youtube-downloader","youtube-downloader-gui","yt-dlp"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xcodian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2022-01-30T03:17:03.000Z","updated_at":"2024-10-24T00:51:45.000Z","dependencies_parsed_at":"2024-01-14T15:22:17.344Z","dependency_job_id":"3d9d7dec-54dd-4caf-9c54-7e2743e8ea29","html_url":"https://github.com/xcodian/youtube-dl-web","commit_stats":null,"previous_names":["xcodian/youtube-dl-web","xxcodianxx/youtube-dl-web"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcodian%2Fyoutube-dl-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcodian%2Fyoutube-dl-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcodian%2Fyoutube-dl-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcodian%2Fyoutube-dl-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xcodian","download_url":"https://codeload.github.com/xcodian/youtube-dl-web/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245826667,"owners_count":20678840,"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":["docker","docker-compose","downloader","fastapi","gui","https","material-design","nginx","react","typescript","youtube","youtube-dl","youtube-dl-gui","youtube-downloader","youtube-downloader-gui","yt-dlp"],"created_at":"2024-07-31T16:02:21.528Z","updated_at":"2025-03-27T10:30:33.244Z","avatar_url":"https://github.com/xcodian.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# 🚀 youtube-dl-web\nA good web interface for youtube-dl that allows you to download arbitrary mixes of audio and video, including up to the highest quality such as 8K.\n\n### Sadly, the public hosted website has been shut down. You are free to host this tool yourself!\n![Screenshot of the Webpage](images/screenshot_front.png)\n\n## Motive\nThere is no user-friendly method to download the highest quality of a YouTube video, without errors, and without installing software on your computer.\n\nThe web application, **youtube-dl-web** aims to create a user-friendly interface for downloading such videos.\n\n## Features\n- ⏩ Quick Download of pre-encoded YouTube Videos\n  \n  Most YouTube downloaders would *only* provide the sources that **youtube-dl-web** provides in its Quick Download category.\n  Although preservation of quality is important, the Quick Download option is for users who simply just want an mp4, of a decent\n  quality, downloaded fast.\n \n- ✨ Quality Selection\n\n  The most powerful feature of this interface is the ability to select any pair of audio and video for a resulting matroska video file.\n  Unfortunately, due to the differing nature of the video and audio containers, matroska is the only option that can be used in order to\n  preserve fast download speeds, and original quality. Again, the Quick Download section exists.\n\n- 📡 Direct Download Streaming\n\n  Youtube-dl-web never saves a file on the server disk, or makes you wait to start receiving data. As soon as a stream is received from\n  YouTube, it immediately starts streaming over to your browser, for a direct download. This also works for the \"pick your own\" section,\n  ensuring download speeds essentially limited only by your network connection.\n  \n- 🎞️ Unlimited Video Length\n\n  Given that the video data is streamed directly, there is no limit to the size of a video you can download using the website, unlike\n  some other alternative download sites. Videos that were previously live are supported, alongside their full Live Chat JSON.\n\n- 📢 Subtitle Download\n  \n  Download videos with their subtitles in all supported languages, with options to embed directly into the video (experimental) or to export separately as either a .srt, .ass or .vtt file!\n  \n- 👍 User Friendly UI\n  \n  The UI is modern, easy to use and informative. Arguably the biggest limitation of youtube-dl is the command line interface, as most users\n  do not know how to use it, and would often go back to subpar websites for downloading videos, at a lower quality.\n\n- 🔗 Direct Substitution\n\n  You can simply replace \"www.youtube.com\" with the tool's URL (keeping the watch?v= part), and it will automatically pick up the video URL you\n  are trying to use. \n\n## Hosting Yourself\n\n### Architecture\nYoutube-dl-web relies on three main components:\n\n- The built frontend files, which are served to the user\n- The backend API server, which does the downloading\n- The NGINX Proxy, which routes requests to the API server, and serves the frontend files\n\nThe API server and the NGINX Proxy can most easily be deployed using Docker Compose.\nThe frontend can be built manually with `yarn`, although a build script\nwhich accomplishes this in a platform independent way (using a temporary Docker container) is included.\n\n### Getting Started\nFor the hosting experience to be smooth for everyone, youtube-dl-web can be easily deployed using Docker Compose in a secure manner, secluded from your host operating system and without you having to install any dependencies.\n\n#### Step 1: Install Docker and Docker Compose\nVerify you have them installed with:\n```bash\n$ docker --version\nDocker version 20.10.12\n\n$ docker-compose --version\nDocker Compose version 2.2.3\n```\n\nThe actual versions don't matter much, just about anything should do!\n\n*If you're on an ARM system, such as a Raspberry Pi (untested) you can install Docker Compose as so:*\n```\n$ sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose\n$ sudo chmod +x /usr/local/bin/docker-compose\n```\n\n#### Step 3: Clone this repo\n\n```\n$ git clone https://github.com/xxcodianxx/youtube-dl-web\n```\n:warning: This tutorial assumes you are running the following commands as UID 1000.\nMake sure the folders are owned by UID 1000 \u0026 GID 1000, as the automatic containerized build process depends on it.\n\n```\n$ chown -R 1000:1000 youtube-dl-web\n```\n\n#### Step 2: Build Frontend Static Files\nThis makes sure that all of the HTML is compiled ready for the\nwebserver to serve.\n```\n$ cd frontend\n$ bash ./build.sh\n```\n\n#### Step 3: Start the Docker Compose cluster\nThis will start all the necessary containers in their environments.\n```\n$ cd ..\n$ docker-compose up -d --build\n```\n\n#### That's it!\n\nYou can look at your running containers with:\n```\n$ docker-compose ps\n```\nAnd view their logs with:\n```\n$ docker-compose logs -f\n```\n\n### SSL\n\nThe steps above describe running youtube-dl-web without SSL, meaning that all traffic sent to and from your webserver is over the internet in the clear! \n\nIt's not like there's that much sensitive data being sent over, but it's nice to have HTTPS support.\n\nFor home hosting, this is not required at all.\n\n#### Obtaining SSL Certificates\nThe NGINX config is set up for Let's Encrypt certificates.\n\nOnce generated with `certbot`, they can be found in `/etc/letsencrypt/live/yourdomain.example.net/*.pem`\n\n#### Enabling SSL Support\n\nAdd your certificates (files `fullchain.pem` and `privkey.pem`) into the `nginx/certs` directory. You can obtain these from Let's Encrypt with certbot.\n\nFirst, stop the cluster if you have it running:\n```\n$ docker-compose down\n```\n\nThen, go into the `docker-compose.yml` file and follow the commented directions.\n\nAfter this, repeat step 3 again, and you should be good to go!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxcodian%2Fyoutube-dl-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxcodian%2Fyoutube-dl-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxcodian%2Fyoutube-dl-web/lists"}