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
Metadata
Release files for fmdpy 0.6.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fmdpy-0.6.3.tar.gz | 24.2 kB | Without provenance | Details for fmdpy-0.6.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fmdpy-0.6.3-py3-none-any.whl | Python 3 | none | any | Details for fmdpy-0.6.3-py3-none-any.whl |
Total release size: 48.9 kB
Release files / fmdpy-0.6.3.tar.gz
| Download URL | fmdpy-0.6.3.tar.gz |
|---|---|
| Size | 24.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
492e3b47d33ab93af01ff968c54cf9729b41711cebadbf68bcf2f37c07c3db5e
|
|
BLAKE2b-256 checksum How to use checksums |
91e76dad893ac9f9c87c603af3a0556883e6fae44cfc3cbcca47b31f4786a5f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|
Release files / fmdpy-0.6.3-py3-none-any.whl
| Download URL | fmdpy-0.6.3-py3-none-any.whl |
|---|---|
| Size | 24.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
feb8b0ade082730f9bfd3897cc395ce8ceb10ae4f3692dc97251fa655edb7cde
|
|
BLAKE2b-256 checksum How to use checksums |
19c796e621b1ab46d107e1e36695be3853fada4892362da1f78434161e1043e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|
Security for fmdpy 0.6.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.