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
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, wavVideo: 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
- yt-dlp — Download engine
- ytmusicapi — YouTube Music API
- mutagen — Metadata tagging
- platformdirs — Config paths
- color-kiss — Terminal colors
- cliss — CLI framework
Author: Fkernel653 Repository: github.com/Fkernel653/fm-dlp PyPI: pypi.org/project/fm-dlp
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a28d5002be2ff456eca7334dffa8991e363f9b657d7c35ea5de1ebfc03bdebb
|
|
| MD5 |
0d7a349c7478f2cf663371fddf0a290f
|
|
| BLAKE2b-256 |
477cd91c272aeb82ec15b46f54b3e1a54a06409325c49d1d651c6bf426d0ebf0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f29c889ee0b19e3c93be88f4945583c81deb983d3234f7377d67cf4f84a6d8f1
|
|
| MD5 |
f0734b5fcc6801084fd70b5c3f8230c3
|
|
| BLAKE2b-256 |
60c4e835f3d49cef67486d1a3943a2b121b2fbd6b4879171f0e0b373ed7148ea
|