Skip to main content

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

Project description

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

Python PyPI License Ruff

Download high-quality music and video from YouTube, YouTube Music, and 1000+ sites — with metadata tagging, from your terminal.

🚀 Quick Start

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

📋 Commands

search — Find music

fm-dlp search <query> [--limit 10] [--platform yt-music|yt-video] [--type track|album]
Option Default Description
--platform yt-music yt-music, yt-video
--type track track, album
--limit 10 Results count
--proxy Proxy URL

download — Download audio/video

fm-dlp download <urls> [--codec CODEC] [--kbps 256] [--max-concurrent 5] [--quiet] [--no-metadata]
Option Default Description
--codec m4a/opus Audio: mp3, aac, flac, m4a, opus, vorbis, wav
Video: mp4, mkv, webm, mov, avi, flv
--kbps 256 Bitrate 64–320 (audio)
--max-concurrent 5 Parallel downloads
--quiet Suppress yt-dlp output
--no-metadata Skip metadata embedding
--path config Override download directory
--cookies Browser: chrome, firefox, edge
--proxy http://, socks5://, etc.

config — Set download path

fm-dlp config ~/Music

📖 Examples

# Search
fm-dlp search "Sewerslvt" --limit 10
fm-dlp search "usedcvnt" --type album

# Audio
fm-dlp download "URL" --codec mp3 --kbps 320
fm-dlp download "URL1 URL2 URL3" --codec flac

# Video
fm-dlp download "URL" --codec mp4
fm-dlp download "URL" --codec mkv

# Custom path
fm-dlp download "URL" --path ~/Downloads

# Advanced
fm-dlp download "URL" --cookies firefox --proxy socks5://127.0.0.1:9050
fm-dlp download "URL1 URL2 URL3" --quiet --max-concurrent 10

🔧 Dependencies

Library Purpose
yt-dlp Download engine
ytmusicapi YouTube Music API
mutagen Metadata tagging
platformdirs Config paths
color-kiss Terminal colors
cliss CLI framework
FFmpeg Audio/video conversion (system)

❓ FAQ

Why fm-dlp over yt-dlp? Simplifies complex flags into clean commands: readable search output, single --codec option, automatic metadata tagging.

Why M4A on macOS? macOS treats M4A/AAC as native (Finder, Music.app). Linux/Windows default to Opus for better quality. Override with --codec.

Proxy support? HTTP/HTTPS works everywhere. SOCKS only for download and yt-video search.

📄 License

MIT License — see LICENSE file.

🙏 Acknowledgments


Author: Fkernel653 Repository: github.com/Fkernel653/fm-dlp PyPI: pypi.org/project/fm-dlp

Project details


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-3.6.5.tar.gz (25.2 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-3.6.5-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for fm_dlp-3.6.5.tar.gz
Algorithm Hash digest
SHA256 7a28d5002be2ff456eca7334dffa8991e363f9b657d7c35ea5de1ebfc03bdebb
MD5 0d7a349c7478f2cf663371fddf0a290f
BLAKE2b-256 477cd91c272aeb82ec15b46f54b3e1a54a06409325c49d1d651c6bf426d0ebf0

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for fm_dlp-3.6.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f29c889ee0b19e3c93be88f4945583c81deb983d3234f7377d67cf4f84a6d8f1
MD5 f0734b5fcc6801084fd70b5c3f8230c3
BLAKE2b-256 60c4e835f3d49cef67486d1a3943a2b121b2fbd6b4879171f0e0b373ed7148ea

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