tortious / ytmdl

A simple script to get songs from youtube in mp3 format with all tags from itunes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

YouTube Music Downloader


Prerequisites   |   Setup   |   Usage   |   Change Defaults   |   Acknowledgements   

forthebadge made-with-python

Travis (.org) License PyPI AUR PyPI - Downloads PRs Welcome

Prerequisites

  • Python 3.x
  • ffmpeg

Setup

  • 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
  • Get the last released version?

    Available in AUR here

    yay -S ytmdl

    Available in PyPi here

    pip install ytmdl

    Please install ffmpeg manually

Usage

usage: ytmdl [-h] [-q] [--song SONG-METADATA] [--choice CHOICE] [--artist ARTIST]
             [--album ALBUM] [--proxy URL] [--url URL] [--disable-metaadd] [-s]
             [--list PATH TO LIST] [--nolocal] [--version]
             [SONG_NAME [SONG_NAME ...]]

positional arguments:
  SONG_NAME             Name of the song to download.

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.
  --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.
  --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.
  --disable-metaadd     Disable addition of passed artist and album keyword to the
                        youtube search in order to get a more accurate result. (Default:
                        false)
  -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

Change Defaults

The defaults can be changed by editing the config file in ytmdl folder in your .config folder

Supported options to change are:

Name
SONG_DIR Directory to save the songs in after editing
SONG_QUALITY Quality of the song

SONG_DIR also takes values that are extracted from the song

Example format is /your/desired/path$Album->Artist->Title to save in the following way
|--your
    |--desired
           |--path
                |--Album
                        |--Artist
                                |--Title
                                    |--Song.mp3

Adding any tag at the end of the SONG_DIR between [] will be considered the name of the song.

Example format is /your/desired/path$Album->Artist->[Title] to save in the following way
|--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

Acknowledgements

  • 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.

About

A simple script to get songs from youtube in mp3 format with all tags from itunes

License:MIT License


Languages

Language:Python 100.0%