This app downloads a song by getting the audio from Youtube sources using youtube-dl and then adds song information like artist name, album name, release date, thumbnail etc by fetching it from sources like Itunes and Gaana.
NO. YoutubeDL doesn't do that. All youtube-dl does is lets you download audio from a video that you specify. This app is not yet another youtube-dl clone.
- Python 3.x
- ffmpeg
-
Available in PyPi here
pip install ytmdl
Available in AUR here
yay -S ytmdl
Available in src_prepare-overlay here
# First set up src_prepare-overlay (as root) emerge -av --noreplace app-eselect/eselect-repository eselect repository enable src_prepare-overlay emaint sync -r src_prepare-overlay # Finally emerge ytmdl (as root) emerge -av --autounmask net-misc/ytmdl
-
Hate your stable life? Love living on the bleeding edge?
Clone the repo and install manually.
git clone https://github.com/deepjyoti30/ytmdl && cd ytmdl && sudo python setup.py install
-
usage: ytmdl [-h] [-q] [--song SONG-METADATA] [--choice CHOICE]
[--artist ARTIST] [--album ALBUM] [--disable-metaadd]
[--proxy URL] [--url URL] [-s] [--list PATH TO LIST] [--nolocal]
[--version] [--pl-start NUMBER] [--pl-end NUMBER]
[--pl-items ITEM_SPEC] [--ignore-errors] [--level LEVEL]
[--disable-file] [--list-level]
[SONG_NAME [SONG_NAME ...]]
positional arguments:
SONG_NAME Name of the song to download. Can be an URL to a
playlist as well. It will be automatically recognized.
optional arguments:
-h, --help show this help message and exit
-q, --quiet Don't ask the user to select songs if more than one
search result. The first result in each case will be
considered.
--proxy URL Use the specified HTTP/HTTPS/SOCKS proxy. To enable
SOCKS proxy, specify a proper scheme. For example
socks5://127.0.0.1:1080/. Pass in an empty string
(--proxy "") for direct connection
--url URL Youtube song link.
-s, --setup Setup the config file
--list PATH TO LIST Download list of songs. The list should have one song
name in every line.
--nolocal Don't search locally for the song before downloading.
--version show the program version number and exit
Metadata:
--song SONG-METADATA The song to search in Metadata. Particularly useful for
songs that have the names in a different language in
YouTube. For Example, greek songs.
--choice CHOICE The choice that the user wants to go for. Usefull to
pass along with --quiet. Choices start at 1
--artist ARTIST The name of the song's artist. Pass it with a song
name.
--album ALBUM The name of the song's album. Pass it with a song name.
--disable-metaadd Disable addition of passed artist and album keyword to
the youtube search in order to get a more accurate
result. (Default: false)
Playlist:
--pl-start NUMBER Playlist video to start at (default is 1)
--pl-end NUMBER Playlist video to end at (default is last)
--pl-items ITEM_SPEC Playlist video items to download. Specify indices of
the videos present in the playlist seperated by commas
like: '--playlist-items 1, 2, 4, 6' if you want to
download videos indexed 1, 2, 4 and 6. Range can also
be passed like: '--playlist-items 1-3, 5-7' to download
the videos indexed at 1, 2, 3, 5, 6, 7.
--ignore-errors Ignore if downloading any video fails in a playlist. If
passed, the execution will move to the next video in
the passed playlist.
Logger:
--level LEVEL The level of the logger that will be used while
verbosing. Use `--list-level` to check available
options.
--disable-file Disable logging to files
--list-level List all the available logger levels.
Name | |
---|---|
SONG_DIR |
Directory to save the songs in after editing |
SONG_QUALITY |
Quality of the song |
|--your
|--desired
|--path
|--Album
|--Artist
|--Title
|--Song.mp3
|--your
|--desired
|--path
|--Album
|--Artist
|--Title.mp3
Supported options are:
Name | |
---|---|
Artist |
Artist Of the Song |
Album |
Album Of the Song |
Title |
Title Of the Song |
Genre |
Genre Of the Song |
TrackNumber |
TrackNumber Of the Song |
ReleaseDate |
ReleaseDate Of the Song |
-
Inspired from https://github.com/tterb/yt2mp3
-
Thanks to the developers of youtube-dl, itunespy, mutagen, colorama and Python.
-
Thanks to itunes and gaana for their awesome API's.
-
Thanks to Nishan Pantha for search logic.
-
Thanks to Biswaroop for testing in windows.