{"id":13989006,"url":"https://github.com/michaelb/auto-ytdl","last_synced_at":"2025-04-10T06:44:04.966Z","repository":{"id":55012082,"uuid":"279152131","full_name":"michaelb/auto-ytdl","owner":"michaelb","description":"Yet another youtube-dl wrapper, but auto-ytdl can automate your new music downloads better than ever","archived":false,"fork":false,"pushed_at":"2023-02-11T17:40:47.000Z","size":15183,"stargazers_count":34,"open_issues_count":3,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-06T08:09:11.584Z","etag":null,"topics":["audio","downloader","hacktoberfest","music","youtube","youtube-dl-wrapper","youtube-downloader"],"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/michaelb.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}},"created_at":"2020-07-12T21:37:45.000Z","updated_at":"2024-09-05T14:35:08.000Z","dependencies_parsed_at":"2024-01-15T16:52:43.630Z","dependency_job_id":null,"html_url":"https://github.com/michaelb/auto-ytdl","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelb%2Fauto-ytdl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelb%2Fauto-ytdl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelb%2Fauto-ytdl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelb%2Fauto-ytdl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michaelb","download_url":"https://codeload.github.com/michaelb/auto-ytdl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248173641,"owners_count":21059595,"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":["audio","downloader","hacktoberfest","music","youtube","youtube-dl-wrapper","youtube-downloader"],"created_at":"2024-08-09T13:01:28.642Z","updated_at":"2025-04-10T06:44:04.932Z","avatar_url":"https://github.com/michaelb.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Outdated\n\nI'm not updating this project anymore and some dependencies (kdi3-cli) are now missing in mainstream repos. It may be usable as-is from sources, but there's no guarantee.\n\n# auto-ytdl\n\n![](https://img.shields.io/badge/Release-v1.3.1-green.svg)\n\nI know, _yet another_ youtube-dl wrapper. But this one does something others don't: ability to automate your new music downloads, just like package managers automate your updates.\n\n```\naytdl update\n```\n\nAnd that's it.\n(Some initial setup is required of course, so auto-ytdl knows what music to download, but the most used commands are that simple)\n\n## v1.3.3 changelog\n\n\u003e --playing now supports music.youtube too\n\n\u003e Licence\n\n\u003e important fix for --include-old behavior\n\n\u003e Youtube-dl executable can be configured (still defaults to youtube-dlc)\n\n\u003e Soundcloud is now explicitly supported, though the user should tweak config options to not be limited to free-tier low quality audio.\n\n\u003e Windows support\n\n\u003e fix music with no length bug\n\n\u003e Fix --playing option not working in chrome 86\n\u003e Youtube-dl dependency is replaced by youtube-dlc since former was not updated to a working version yet. I expect youtube-dlc to release fixes faster now that the whole RIAA thing has seriously hurt youtube-dl. If you execute from source and modify your config to use \"youtube-dl\", the requirement becomes optional.\n\n# Table of Contents\n\n- [Why does it exist? / Motivation / Rant](#why-does-it-exist--motivation--rant)\n- [Doesn't it exist already?](#doesnt-it-exist-already)\n- [How does it works?](#how-does-it-works)\n- [Features](#features)\n- [Dependencies](#dependencies)\n- [Install](#install)\n- [Usage](#usage)\n- [Examples](#examples)\n\n# Why does it exist? / Motivation / Rant / you can skip this part\n\n[DISCLAIMER: informal language]\n\nY'all know how we live in the 5G era, so for us music \\* folks that would mean streaming music 24/7... but (one or more of):\n\n- there is no mobile network / wifi at your office / parent's home / hotel room / on the road / at the back of your house\n- you have a limited data allowance anyway\n- spotify feels like both an ad gatling gun and a noisy radio (because of the network bandwith playing yo-yo)\n- your entry-level phone/PC 2.4GHz antenna can't deal with both Wi-Fi music streaming and bluetooth connection to headphone/speakers\n- youtube/yt music either replay the same 5 songs forever or goes its way on some crappy music that's unlike everything you like. It's a nice tool to discover new things, but not to actually listen to music. Some other services\\*\\* may be relevant to audiophile-class folks, but down here the _de-facto_ service for music is Youtube.\n- yeah, music streaming is pretty not here yet\n\n[DISCLAIMER: personal opinion]\n\nFor people who truly enjoy music \\*, nothing beats yet having a local library, even with the hassle of managing, de-duplicating, and updating it constantly.\n\nAuto-ytdl is there to help (you) with all that: there are tons of great artists that publish new songs everyday; having a local music library should not mean that we have to forsake listening to those!\nPlus, auto-ytdl comes with management of duplicates of newly-downloaded songs, based on metadata so you don't have multiples identical song but from different youtube channels.\n\n\\* (_yes_ I know youtube and other video streaming services do not have extremely good audio, but it's out of convenience): hardcore audiophile abstain\n\n# Doesn't it exist already?\n\nNo.\n\nHowever, [olivia](https://github.com/keshavbhatt/olivia) is a music player that propose a similar feature named 'smart playlist', the beta I tested could auto-download individual songs. You may want to check it out!\n\nIt's more of an all-rounder and I believe auto-ytdl + your favorite music player may be a better combo _if your use case is similar to mine_.\n\n[deserves mention for existing]\n\nThe closest idea I could find is MediaHuman's (paid, expensive, closed-source) Youtube-Downloader: as of writing, it seems to have 'tracking' capabilities, and little explications given.\nAll this looked a bit fishy, though it has a nice GUI. It also only offers a .deb package for \"GNU/Linux OS\" and .deb support for Arch (btw I use Arch) is not first-class.\n\n# How does it works?\n\nsee also [Usage](#usage) and [Examples](#examples)\n\n1. Add some of your favorite (youtube\\*) channels / referencers /artists\n\n2. At your next update command, all newly-released music from specified sources will be downloaded, cleaned, de-duplicated, and added to your music library.\n\n3. [optionnal] Tinker with the options\n\n\\* playlist or channels from Dailymotion, vimeo or anything youtube-dl can download from can in theory work, but have not been tested yet\n\n# Features\n\n- Auto-download of all new music from a simple command (music-only download, best quality available (often opus format ~160kbps for youtube), no conversion by default)\n- Add/remove/list all your favorite music providers; mainly tested on youtube and soundcloud channels, but should work on playlist, and other video platforms\n- Clean tags, so e.g. the displayed artist name does _not_ look like \"Nirvana (lyrics) [Music video] official\" but just \"Nirvana\"\n- Filter by tags so only 'true' and unique songs (according to config) end up in your library\n- Ignore the filter if you really want that weird video\n- Can still handle one-shot downloads, or include older songs of (newly discovered) artists\n- Comprehensive config options\n- No missing/skipping/forgetting songs, even if a previous download was interrupted\n- Download video currently playing in chrome + youtube / music.youtube\n- Thumbnail embedding supported for mp3 and opus (default) format\n\n# Dependencies\n\n- youtube-dlc (need to be in the PATH or current folder)\n- ffmpeg (need to be in the PATH or current folder)\n- pip/python3-pip (need to be in the PATH or current folder)\n\n(optionnal dependency for better OPUS handling, (windows users, don't bother))\n\n- kid3-cli [AUR](https://aur.archlinux.org/packages/kid3-cli/) [website](https://kid3.kde.org/)\n\nSome python modules, such as music-tag and mutagen, will be pulled automatically. If that step fails, you can run `pip install -r dependencies.txt` (or `python3-pip ....`)\n\n# Install\n\n(Install the dependencies first)\n\n- auto-ytdl is available in the AUR\n  [here](https://aur.archlinux.org/packages/auto-ytdl-git/) (you can get executables from the latest [release](https://github.com/michaelb/auto-ytdl/releases/tag/v1.2.0) )\n- install from source:\n\n```\ngit clone https://github.com/michaelb/auto-ytdl\ncd auto-ytdl                     #you can run ./aytdl.py if you don't wish to install\npip install --user .\n\n# to uninstall if installed manually\npip uninstall auto-ytdl\n```\n\nIf you didn't (want to) install, you can directly run:\n`python aytdl.py` instead of `aytdl`\n\n# Usage\n\nOnce installed you can run\n\n```\naytdl [COMMAND][OPTIONS] [URLs ..]\n```\n\n# Examples\n\n```\n# asking for help\naytdl --help\n\n#asking for help about 'update' command\naytdl update --help\n\n\n#edit the config file (you should do that, rather sooner than later)\naytdl edit\n\n#add Mr SuicideSheep to followed channels\naytdl add https://www.youtube.com/channel/UC5nc_ZtjKW1htCVZVRxlQAQ\n\n#also work with soundcloud, and probably other video platforms such as dailymotion\naytdl add https://soundcloud.com/nemenmusic\n\n#see all the added sources\naytdl list\n\n\u003e url1\n\u003e url2\n\u003e ...\n\n#remove Mr SuicideSheep channel from followed sources\naytdl remove https://www.youtube.com/channel/UC5nc_ZtjKW1htCVZVRxlQAQ\n\n#download all new music from all sources\naytdl update\n\n\n#download rick's astley famous song\naytdl update https://www.youtube.com/watch?v=dQw4w9WgXcQ\n\n#download rick's astley famous song while it's playing in chrome (linux-only)\naytdl update -p\n\n#download all music ever from Mr SuicideSheep, no just new ones\naytdl update --include-old https://www.youtube.com/channel/UC5nc_ZtjKW1htCVZVRxlQAQ\n\n# download a 1-hour concerto (not fitting the (configurable) criteria for 'normal' music)\naytdl update https://www.youtube.com/watch?v=PM0HqmptYlY --force\n\n```\n\n### Known Issues \u0026 workaround (windows-only)\n\nOn Windows, aytdl has trouble with embedding thumbnails with opus and mp3.\n\nMP3 issues with thumbnails migth be bypassed by adding:\n\nembed-thumnail = true\n\nto the end of the config file.\nIt makes youtube-dl the one in charge of embedding the thumbnail in the mp3, and it should work great!!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelb%2Fauto-ytdl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichaelb%2Fauto-ytdl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelb%2Fauto-ytdl/lists"}