Skip to main content

FMDPY

PIP-PYVERSION license PIP-VERSION PIP-STATUS Codacy Badge

CI-STATUS CD-STATUS

Downloads

 ,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

example.gif

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)

Source distribution for fmdpy 0.6.3
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)

Table of built distributions (wheels) for fmdpy 0.6.3
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page