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 (YouTube Music by default)
fm-dlp download "URL" --codec flac # Download audio
📋 Commands
search — Find music
fm-dlp search <query> [--limit 10] [--yt-video] [--type track|album]
Search uses YouTube Music by default. Use --yt-video to search YouTube instead.
| Option | Default | Description |
|---|---|---|
--yt-video |
— | Search YouTube instead of YTMusic |
--type |
track |
track, album |
--limit |
10 | Results count |
download — Download audio/video
fm-dlp download <urls> [--codec CODEC] [--kbps 256] [--jobs 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) |
--jobs |
5 | Parallel downloads |
--quiet |
— | Suppress yt-dlp output |
--no-metadata |
— | Skip metadata embedding |
--path |
config | Override download directory |
--cookies |
— | Browser: chrome, firefox, edge |
config — Set download path
fm-dlp config ~/Music
📖 Examples
# Search
fm-dlp search "Sewerslvt" --limit 10 # YTMusic
fm-dlp search "usedcvnt" --type album
fm-dlp search "breakcore" --yt-video # YouTube
# 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
fm-dlp download "URL1 URL2 URL3" --quiet --jobs 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.
How to use a proxy? fm-dlp doesn't include built-in proxy support. Use proxychains or similar tools:
proxychains fm-dlp download "URL"
📄 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.7.3.tar.gz.
File metadata
- Download URL: fm_dlp-3.7.3.tar.gz
- Upload date:
- Size: 24.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","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 |
86940f91e0e464c7b3c0dce9d3390e22366b609adff79cedd4db0e7fea1e0162
|
|
| MD5 |
b85da46a8e16c37ce96d4f8bfb78bff5
|
|
| BLAKE2b-256 |
51120a00557e89eb016b15518edfef3afcea7e6701d2acf497d982822609b2fb
|
File details
Details for the file fm_dlp-3.7.3-py3-none-any.whl.
File metadata
- Download URL: fm_dlp-3.7.3-py3-none-any.whl
- Upload date:
- Size: 19.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","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 |
46d678fe27488788ce8aba1ca61b3ed542505b02921e1e30be581127c68c8482
|
|
| MD5 |
67feacd3a4651af2ce03e3cf00824029
|
|
| BLAKE2b-256 |
d4f3bbde767eddbfd8550914af14f01512a0210864f8896007d3838f5d156fa0
|