Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mediadl-logo

download media. simple, fast, local.
youtube · spotify · tiktok · and many more

npm version license node version

mediadl home screen


Download videos from YouTube, TikTok, Instagram, X/Twitter, Threads and 1,800+ other sites. Download songs and playlists from Spotify with full metadata. Paste a link, pick a format, done.

No popups, no fake download buttons, no sketchy redirects.

Install

npm install -g mediadl-cli

Or run without installing:

npx mediadl-cli

Requires Node 18+. yt-dlp, FFmpeg, spotdl, and Deno are installed automatically on first use.

Usage

$ mediadl https://youtu.be/dQw4w9WgXcQ         # pick a format, download
$ mediadl https://open.spotify.com/track/...     # download a single track
$ mediadl https://open.spotify.com/playlist/...  # download full playlist
$ mediadl https://www.tiktok.com/...             # download a video
$ mediadl                                        # prompts for a link
$ mediadl --theme dark                           # force dark mode

Screenshots

mediadl format picker

mediadl download progress

Keyboard Shortcuts

Key Action
up/down or j/k Navigate formats
Enter Confirm / Download
Esc Go back
Tab Paste clipboard URL
Ctrl+T Cycle theme
Ctrl+C Quit

How It Works

  • YouTube & 1800+ sites — Powered by yt-dlp. Standalone binary downloaded to ~/.mediadl/bin on first run.
  • Spotify — Powered by spotdl. Auto-installed via pip. Also installs Deno for YouTube downloads.
  • FFmpeg — For merging streams and MP3 extraction. Uses system FFmpeg or bundled fallback.
  • UI — Built with Ink (React for the terminal).

Output Locations

Source Location
YouTube, TikTok, etc. ~/Downloads/
Spotify single track ~/Downloads/
Spotify playlist/album ~/Downloads/<Playlist Name>/

Development

git clone https://github.com/kevlarclint/mediadl-cli.git
cd mediadl
npm install
npm run build        # bundle to dist/
npm run dev          # rebuild on change
npm run test         # run tests
npm run typecheck    # check types

To try it globally: npm link, then run mediadl anywhere.

Credits

Forked from yoinks by Pablo Stanley.

Built with:

  • yt-dlp — Video downloads
  • spotdl — Spotify downloads
  • FFmpeg — Media processing
  • Ink — Terminal UI

License

MIT

Releases

Used by

Contributors

Languages