Skip to main content

CLI tool for searching YouTube/YTMusic and downloading audio/video from 1000+ platforms

Project description

fm-dlp — Download from YouTube, YTMusic, and 1000+ sites

Python PyPI License Platform Ruff

CLI tool for searching YouTube/YTMusic and downloading audio/video from 1000+ platforms

🚀 Quick Start

pip install fm-dlp                    # Python 3.10+ & FFmpeg required
fm-dlp config ~/Music                 # Set download directory
fm-dlp search "artist"                # Search tracks
fm-dlp download "URL" --codec flac    # Download audio

📋 Commands

search

fm-dlp search <query> [--limit 10] [--yt-video] [--album] [--raw] [--only-url] [--no-color]
Option Description
--limit N Maximum number of results (default: 10)
--yt-video Search YouTube videos instead of YouTube Music
--album Search for albums instead of individual tracks
--raw Output raw JSON/Python dict format
--only-url Output only URLs without any formatting
--no-color Disable colored output in search results

download

fm-dlp download <urls> [--codec CODEC] [--kbps 256] [--jobs 5] [--quiet] [--no-metadata] [--path PATH] [--cookies COOKIES] [--no-color]

URLs: Single, multiple (space/comma), or file path (one URL per line, # for comments)

Option Description
--codec Audio: mp3, aac, flac, m4a, opus, vorbis, wav, alac
Video: mp4, mkv, webm, mov, avi, flv
--kbps Audio bitrate 64–320 (default: 256)
--jobs Number of parallel downloads (default: 5)
--quiet Suppress yt-dlp output messages
--no-metadata Skip metadata and thumbnail embedding
--path Override download directory
--cookies Browser name (brave, chrome, chromium, edge, opera, vivaldi, whale, firefox, safari) or path to cookies file
--no-color Disable colored output in download messages

config

fm-dlp config <path> [--no-color]
Option Description
path Default download directory
--no-color Disable colored output in configuration messages

update

fm-dlp update [--no-color]

Self-update to the latest version from GitHub with automatic OS detection.

Option Description
--no-color Disable colored output in update messages
Behavior Description
Binary mode (PyInstaller) Downloads the appropriate executable for your OS (.exe on Windows, no extension on macOS/Linux) and replaces the current binary
Script mode (pip install) Updates the package via pip or uv (whichever is available, uv preferred for faster installation)

Features:

  • Automatic OS detection (Windows, macOS, Linux)
  • Always updates to the latest GitHub release (no version checking)
  • Cross-platform support
  • Fallback to pip if uv is not installed
  • Preserves executable permissions on Unix systems
  • Error handling with user-friendly messages:
    • GitHub API connection failures
    • Missing assets for current OS
    • Permission denied (with admin/sudo suggestion)
    • Package installation errors (with detailed output)

Note: The application may need to be restarted after updating, especially when running as a binary.

📄 License & Acknowledgments

MIT License — Built with:

Library Purpose
yt-dlp Download engine
ytmusicapi YouTube Music API
mutagen Metadata tagging
platformdirs Config paths
argss CLI framework

Author: Fkernel653

Project: GitHubPyPI

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

fm_dlp-4.1.9.tar.gz (30.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fm_dlp-4.1.9-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file fm_dlp-4.1.9.tar.gz.

File metadata

  • Download URL: fm_dlp-4.1.9.tar.gz
  • Upload date:
  • Size: 30.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fm_dlp-4.1.9.tar.gz
Algorithm Hash digest
SHA256 9a4f37a64074c2eec7dbe93a6772b481fdb8e1380acc0b833b31d8c49028b388
MD5 7dfd7604c3d53a2f13d114f2d84a0df2
BLAKE2b-256 a183734bd0c4e58439aaa61f931c77709ce4b1ce38a8eb1880624a555f6ac5f9

See more details on using hashes here.

File details

Details for the file fm_dlp-4.1.9-py3-none-any.whl.

File metadata

  • Download URL: fm_dlp-4.1.9-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fm_dlp-4.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 d524fd25f24f33d27c65445197f394ddfe375132e9f5210f43f53de30a6d304e
MD5 8922a2ec9310be6ca074f0a21ea62958
BLAKE2b-256 ebeeb71b8488251aeee765d5ed5ed9de45f54dafcbdf42adfd6b6d841c3c5df8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page