Music Downloader
Project description
FMDPY
,dPYb, 8I
IP'`Yb 8I
I8 8I 8I
I8 8' 8I
I8 dP ,ggg,,ggg,,ggg, ,gggg,8I gg,gggg, gg gg
I8dP ,8" "8P" "8P" "8, dP" "Y8I I8P" "Yb I8 8I
I8P I8 8I 8I 8I i8' ,8I I8' ,8i I8, ,8I
,d8b,_ ,dP 8I 8I Yb,,d8, ,d8b,,I8 _ ,d8' ,d8b, ,d8I
PI8"8888P' 8I 8I `Y8P"Y8888P"`Y8PI8 YY88888PP""Y88P"888
I8 `8, I8 ,d8I'
I8 `8, I8 ,dP'8I
I8 8I I8 ,8" 8I
I8 8I I8 I8 8I
I8, ,8' I8 `8, ,8I
"Y8P' I8 `Y8P"
INSTALL
From PIP:
python -m pip install --upgrade fmdpy
From github:
python -m pip install git+https://github.com/Liupold/fmdpy
UPDATE
fmdpy -u
USAGE
Usage: fmdpy [OPTIONS] [SEARCH/URL]...
FMDPY.
Download music with metadata
For multiple download you can use something like:
"fmdpy: 1, 2, 3, 5:8", (This will download 1, 2, 3, 5, 6, 7, 8)
"fmdpy: >1, >2", (This will play (stream) 1, 2) (using player_cmd)
"fmdpy: L5", (This will find lyric of 5)
"fmdpy: /<SEARCH/URL>", (This will search songs based on <SEARCH/URL>).
Streaming, downloading can also be mixed. If done so downloading will be
done prior to streaming.
-f native: save to native container [Default](ffmpeg not req.) (-b is
ignored)
Options:
-c, --count INTEGER Max Number of results
-f, --fmt TEXT Format of the audio file.
-b, --bitrate INTEGER Bitrate in kb, (250 is default)
-m, --multiple INTEGER number of concurrent downloads.
-d, --directory PATH Specify the folder.
-F, --filename TEXT filename format.
-l, --lyrics Add lyrics
-g, --gen generate the config file.
-u, --update Update: (for pip only)
-v, --version display version
--help Show this message and exit.
CONFIG
The default location of config file is ~/.fmdpy.ini
and can be set
using env var FMDPY_CONFIG_FILE
The sample file is available in repo. example.ini
This is by no means necessary for the operation.
To generate the config file use fmdpy -g
SPOTIFY support
It can download playlist from spotify given the following is set in config file.
[API_KEYS]
spotify_client_id =
spotify_client_secret =
Lyrics from lyrics genius
It can also add lyrics from lyricsgenius into the meta data given the following is set in config file.
[API_KEYS]
lyricsgenius =
Filename and directory
file name are directory format can be specified using special characters (version 0.6+)
the following must be set.
Strings | Replaced By |
---|---|
$name |
The Name of the song. |
$album |
The Name of the album. |
$artist |
The Name of the artist. |
$year |
Year the song was published. |
If the specified directory is absent it will be created recursively.
Directory Example:
default_directory = /home/<YOUR USERNAME>/Music/$artist/$album/
Streaming
For Streaming (version: 0.5+) is required and
[STREAM]
player_cmd =
(The default player_cmd
uses mpv)
in player_cmd
The following strings will be replaced:
Strings | Replaced By |
---|---|
$audio |
The URL of the music file. |
$cover |
The URL of the cover art file. (JPEG) |
$title |
SONG_NAME [ARTIST_NAME] |
vlc example
player_cmd = ['vlc', '$audio']
EXAMPLE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fmdpy-0.6.3.tar.gz
.
File metadata
- Download URL: fmdpy-0.6.3.tar.gz
- Upload date:
- Size: 24.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 492e3b47d33ab93af01ff968c54cf9729b41711cebadbf68bcf2f37c07c3db5e |
|
MD5 | dfc8f9dbbda602ec6349fbb6d51621c9 |
|
BLAKE2b-256 | 91e76dad893ac9f9c87c603af3a0556883e6fae44cfc3cbcca47b31f4786a5f0 |
File details
Details for the file fmdpy-0.6.3-py3-none-any.whl
.
File metadata
- Download URL: fmdpy-0.6.3-py3-none-any.whl
- Upload date:
- Size: 24.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | feb8b0ade082730f9bfd3897cc395ce8ceb10ae4f3692dc97251fa655edb7cde |
|
MD5 | 6ea83239ab5fc39cac1364bab765089b |
|
BLAKE2b-256 | 19c796e621b1ab46d107e1e36695be3853fada4892362da1f78434161e1043e8 |