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 (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 Path to cookies file OR browser name (chrome, firefox, edge, safari, brave, opera)

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 "URL" --cookies /path/to/cookies.txt
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 cookies? Provide either browser name for automatic extraction (--cookies firefox) or path to exported cookies file (--cookies cookies.txt).

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


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

Project details


Release history Release notifications | RSS feed

This version

3.8.2

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.8.2.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.8.2-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fm_dlp-3.8.2.tar.gz
  • Upload date:
  • Size: 25.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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-3.8.2.tar.gz
Algorithm Hash digest
SHA256 f83dbbe144028de09f6034c6d9733e0d6771cbc9db3dc5e2f0c3c7c70f5cc550
MD5 e79b89cb4ef2c9d864ff1cbfbf1a02df
BLAKE2b-256 3ecdc37be49caeb7d88c2a3b136f2bb471ce861285cef8ad6e4cc56a0a09e173

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fm_dlp-3.8.2-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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-3.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1c577b46d7108595a02e0f7a5d9d0cd76b9af9c8621439818d31c2f90af20157
MD5 2d58b19c51bbfe1e5233782e98b526dc
BLAKE2b-256 aa14613d799c110fa6ab41ed7c85b6cf039c73207ec634710118755ea901d743

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