{"id":24110195,"url":"https://github.com/lolitemaultes/yt-mtdl","last_synced_at":"2026-05-10T12:07:12.834Z","repository":{"id":269511693,"uuid":"907596092","full_name":"lolitemaultes/yt-mtdl","owner":"lolitemaultes","description":"yt-dlp with a user-friendly GUI and multi-thread download capabilities","archived":false,"fork":false,"pushed_at":"2024-12-26T07:48:03.000Z","size":429,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T01:12:54.144Z","etag":null,"topics":["download","download-threads","downloader","downloading","gui","m3u8","multi-thread","multi-threaded","multi-threading","multithread","multithreaded","multithreading","threaded","threads","user-friendly","vimeo","youtube","youtube-dl","yt-dlp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lolitemaultes.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":"2024-12-24T00:38:42.000Z","updated_at":"2024-12-26T07:48:06.000Z","dependencies_parsed_at":"2024-12-24T17:47:06.360Z","dependency_job_id":null,"html_url":"https://github.com/lolitemaultes/yt-mtdl","commit_stats":null,"previous_names":["lolitemaultes/yt-mtdl"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lolitemaultes%2Fyt-mtdl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lolitemaultes%2Fyt-mtdl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lolitemaultes%2Fyt-mtdl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lolitemaultes%2Fyt-mtdl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lolitemaultes","download_url":"https://codeload.github.com/lolitemaultes/yt-mtdl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241104284,"owners_count":19910402,"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":["download","download-threads","downloader","downloading","gui","m3u8","multi-thread","multi-threaded","multi-threading","multithread","multithreaded","multithreading","threaded","threads","user-friendly","vimeo","youtube","youtube-dl","yt-dlp"],"created_at":"2025-01-11T01:12:56.249Z","updated_at":"2026-05-10T12:07:07.793Z","avatar_url":"https://github.com/lolitemaultes.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Untitled](https://github.com/user-attachments/assets/ec7ca53c-42f5-483f-b7c0-8919fad33808)\n\n# YouTube Multi-Threaded Downloader (yt-mtdl)\n\nA modern, feature-rich desktop application for downloading pretty much any video stream, with multi-threading support and a user-friendly dark-themed interface.\n\n## Features\n\n- **Multi-threaded Downloads**: Optimize download speeds with configurable thread count\n\n- **Batch Processing**: Import multiple URLs from a text file for bulk downloads\n\n- **Format Selection**: Choose between automatically scanned quality options and formats\n\n- **Quality Options**: Select from multiple standard resolution options\n  - Best\n  - High\n  - Medium\n  - Low\n\n- **Additional Options**:\n  - Subtitle downloads\n  - Playlist support\n  - Custom output directory\n  - Download speed limiting\n  - Proxy support\n\n## Requirements\n\n- Python 3.6+\n- PyQt6\n- yt-dlp\n- Concurrent Futures (included in Python standard library)\n\n## Installation\n\n1. Ensure Python 3.6 or higher is installed on your system\n2. Install required dependencies:\n```bash\npip install PyQt6 yt-dlp\n```\n\n## Usage\n\n***Please keep in mind that some m3u8 downloads will download seperate audio and video channels. It will merge them at the end of the download.***\n\n***[See Usage Examples](https://github.com/lolitemaultes/yt-mtdl/blob/main/USE.md)***\n\n***[Test Downloading Capabilities](https://github.com/lolitemaultes/m3u8-urls)***\n\n### Basic Download\n1. Launch the application\n2. Enter a YouTube or other video URL in the input field\n3. Select desired format and quality options\n4. Choose output directory (defaults to Downloads folder)\n5. Click \"Download\" to start\n\n### Batch Downloads\n1. Create a text file with stream URLs (one per line)\n2. Optional: Add episode identifiers before URLs (e.g., \"EP01 https://youtube.com/...\")\n3. Click \"Import URLs\" and select your text file\n4. Configure download options\n5. Click \"Download\" to process all URLs sequentially\n\n### Settings Configuration\n1. Navigate to the \"Settings\" tab\n2. Adjust download threads (1-32)\n3. Set speed limits if needed\n4. Configure proxy settings if required\n5. Click \"Save Settings\" to persist your preferences\n\n## Advanced Features\n\n### Download Settings\n- **Thread Count**: Higher values may improve download speed (default: 16)\n- **Speed Limit**: Optional bandwidth throttling in KB/s\n- **Proxy Support**: Configure proxy settings for network requirements\n\n### Error Handling\n- Built-in error logging system\n- View logs through Tools \u003e View Error Log\n- Save logs for troubleshooting\n\n### File Management\n- Custom naming templates\n- Automatic file organization\n- Support for playlist downloads\n\n## Interface Features\n\n- Modern dark theme interface\n- Progress tracking with detailed status updates\n- Download speed and ETA display\n- Resizable window with responsive design\n- Persistent settings across sessions\n\n## Technical Details\n\nThe application is built using:\n- PyQt6 for the graphical interface\n- yt-dlp for video downloading capabilities\n- Python's concurrent.futures for multi-threading\n- JSON for settings persistence\n- Custom dark theme styling with QSS\n\n## Notes\n\n- Download speeds may vary based on:\n  - YouTube's server response\n  - Your internet connection\n  - Selected thread count\n  - System resources\n- Some videos may have restrictions that prevent downloading\n- Respect YouTube's terms of service and content creators' rights\n\n## Troubleshooting\n\nIf you encounter issues:\n1. Check your internet connection\n2. Verify the YouTube URL is accessible\n3. Review the error log (Tools \u003e View Error Log)\n4. Ensure you have adequate disk space\n5. Try reducing thread count if downloads are unstable\n\n## Settings Storage\n\nThe application stores settings in:\n- `.ytdl_settings.json` for application preferences\n- `.ytdl_errors.log` for error logging\n\nBoth files are stored in the user's home directory.\n\n## License\n\nThis software is provided as-is, check the source code for licensing information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flolitemaultes%2Fyt-mtdl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flolitemaultes%2Fyt-mtdl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flolitemaultes%2Fyt-mtdl/lists"}