Skip to main content

Modern YouTube downloader CLI with subtitle cleaning, parallel downloads, SponsorBlock, and sound notifications

Project description

MelT — Modern YouTube Downloader CLI

Download video, audio, and subtitles from YouTube with a modern CLI. Supports playlists, parallel downloads, thumbnail/subtitle embedding, SponsorBlock, and more.

Quick Start

Download from Releases (recommended):

https://github.com/Agaroth0x1e/melt/releases
  • melt.exe — Windows (standalone, ffmpeg bundled)
  • melt — Linux (standalone, ffmpeg bundled)

Install via pip (PyPI):

pip install meltdl

Or install direct wheel (no PyPI):

pip install https://github.com/Agaroth0x1e/melt/releases/download/v1.0.2/melt-1.0.2-py3-none-any.whl

From source:

pip install -r requirements.txt
python main.py

Termux (Android): See BUILD.md#termux-android for full setup guide.

Pre-built binaries bundle ffmpeg. Source mode requires ffmpeg in PATH (scoop install ffmpeg / brew install ffmpeg / sudo apt install ffmpeg).

Features

  • Single video & playlist downloads
  • Multi-URL support (paste space-separated URLs)
  • Batch file loading (@file.txt)
  • Video (mp4) or Audio (m4a) with thumbnail embedding
  • Subtitle download with roll-up caption cleaning
  • Subtitle embedding into video/audio
  • Parallel downloads (configurable threads)
  • SponsorBlock integration (auto-skip sponsored segments)
  • Dry-run mode to preview before downloading
  • Download queue persistence (resume crashes with --resume)
  • Rate limiting, cookies file support, archive dedup
  • Standalone .exe with bundled ffmpeg

Usage

python main.py                    # Interactive mode
python main.py --resume           # Resume interrupted queue
python main.py --help             # Show help
python main.py --version          # Show version

Multi-URL

Enter YouTube URL: https://youtu.be/A https://youtube.com/playlist?list=XYZ

Batch file

Enter YouTube URL: @videos.txt

File format (one URL per line, # for comments):

https://youtu.be/A
https://youtube.com/playlist?list=XYZ
# This line is ignored

Configuration

Edit config/config.json:

Key Default Description
max_threads 3 Parallel downloads
default_format "video" "video" or "audio"
clear_temp true Delete temp files after download
numbering false Prepend index to filenames
duplicate_action "skip" "skip", "overwrite", or "keep"
sponsorblock true Skip sponsored segments
dry_run false Preview without downloading
exit_on_complete false Exit after download (false = loop back)
reverse_playlist false Process newest-first
rate_limit "" e.g. "5M", empty = unlimited
cookies_file "" Path to cookies.txt
playlist_folder_template "%(playlist_title)s" Subfolder naming for playlists
timeout_seconds 5 Seconds before auto-confirm prompts
video.preferred_format "mp4" "mp4", "mkv", or "webm"
video.quality_priority ["480","360","720"] Preferred resolutions
video.preferred_codec "h264" "h264", "h265", or "vp9"
audio.preferred_format "m4a" "m4a", "mp3", or "opus"
audio.quality_priority ["128","192","264"] Preferred bitrates
audio.default_quality 128 Fallback bitrate
subtitle.prefer_human true Prefer human subs over auto
subtitle.language "en" Language code
subtitle.preferred_format "srt" "srt", "vtt", or "ass"

Build from Source

See BUILD.md for platform-specific build instructions.

Requirements

  • Python 3.8+
  • ffmpeg (bundled in .exe, system install for source)
  • Node.js (optional, 2x yt-dlp speed)

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

meltdl-1.0.2.tar.gz (159.4 kB view details)

Uploaded Source

Built Distribution

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

meltdl-1.0.2-py3-none-any.whl (157.9 kB view details)

Uploaded Python 3

File details

Details for the file meltdl-1.0.2.tar.gz.

File metadata

  • Download URL: meltdl-1.0.2.tar.gz
  • Upload date:
  • Size: 159.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for meltdl-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8817a3c08ed7c6b9b5e093232d97db7c54ade1735e3d913e92465962531bd30d
MD5 5c2c12f032a0ddb6463363d6e18b3b57
BLAKE2b-256 3b778b82689c1a8d6c4697b081ce49a5edf29359d67a2e6bf047a4c2fe64e02a

See more details on using hashes here.

File details

Details for the file meltdl-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: meltdl-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 157.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for meltdl-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7df929f1d8f6407d3219b2a8eb42186cba200fcfc77bfb97e644d0b7264810ef
MD5 e6bb6bd1e70792d13c86bd2a073458f5
BLAKE2b-256 c584159896b6d9598ec77c1b04cf08b0e0062bcd10439697dd6552ed3f1872d1

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