Skip to content

Repository files navigation

CSVMusic

CSVMusic playlist view CSVMusic queue view

Convert playlists and albums from music links or CSV exports into fully tagged audio files.

CSVMusic accepts playlist and album links from supported music services, or a playlist exported as CSV from TuneMyMusic, and automatically:

  • Finds the best match on YouTube Music
  • Downloads the audio
  • Adds metadata such as artist, album, and artwork
  • Outputs ready-to-use M4A or MP3 files, with optional native Opus output
  • Optionally creates .m3u / .m3u8 playlists

Download

Go here: https://github.com/angall1/CSVMusic/releases/tag/v1.6.6

Download one of the following based on your OS:

Windows

https://github.com/angall1/CSVMusic/releases/download/v1.6.6/CSVMusic-windows.zip

macOS (Apple Silicon)

https://github.com/angall1/CSVMusic/releases/download/v1.6.6/CSVMusic-macos-arm64.zip

macOS (Intel)

https://github.com/angall1/CSVMusic/releases/download/v1.6.6/CSVMusic-macos-intel.zip

Linux

https://github.com/angall1/CSVMusic/releases/download/v1.6.6/CSVMusic-linux.zip

Extract the ZIP before running the app. If your desktop does not launch the files directly, open a terminal in the extracted folder and run:

chmod +x CSVMusic yt-dlp
./CSVMusic

If launch fails, copy the terminal output along with uname -m and the contents of /etc/os-release when reporting the problem.


Python Wheel / Source Install

Install the wheel with python -m pip install CSVMusic-*.whl, or install a source checkout with python -m pip install -e .. Then launch CSVMusic with either:

csvmusic
python -m csvmusic

Python installations still require a supported graphical desktop environment for the Qt interface. Android, Andronix, and other phone-hosted Linux environments are not currently supported or tested.


What's New In 1.6.6 (Since 1.6.0)

Updates and MP3 reliability

  • Added a lightweight startup update check that prompts when a newer stable CSVMusic release is available, with options to download, be reminded later, or skip that version.
  • Fixed intermittent MP3 failures when YouTube exposes only a combined audio/video stream. CSVMusic still prefers audio-only downloads and now safely falls back to extracting audio from the best available combined stream.

YouTube reliability

  • Fixed preflight incorrectly reporting the bundled yt-dlp as too old when antivirus scanning or slower storage made its version probe take more than three seconds.
  • Added yt-dlp's automatic YouTube client selection as an early fallback, allowing current upstream clients such as visionos to recover when a forced client temporarily exposes no playable formats.
  • Updated and pinned yt-dlp to 2026.08.19, fixing widespread HTTP 403 failures with current YouTube web_embedded downloads and preventing release builds from silently changing downloader versions.
  • Fixed current YouTube player-challenge failures by packaging Deno and yt-dlp-ejs, passing the runtime explicitly, and validating both before downloads begin.
  • Updated YouTube client fallbacks and diagnostics for current yt-dlp behavior, including clearer HTTP 403, throttling, and JavaScript-runtime messages.
  • Added adaptive pacing when YouTube starts throttling or blocking a playlist download.
  • Improved force-download handling for low-confidence matches and added candidate fallbacks.

Playlist imports and workflow

  • Added first-class Exportify CSV support for Track URI, Album Name, Artist Name(s), release dates, and CSVs without a playlist column.
  • Renamed Load Playlist to Resume Playlist and replaced its folder/file fork with one chooser that accepts a folder or .m3u/.m3u8 file.
  • Added a compact Paste URL… action to Alternatives for downloading a specific YouTube or YouTube Music video.
  • Improved playlist accounting so existing files, queued tracks, duplicate entries, skipped matches, and failures reconcile with the requested track total.

Audio and Windows packaging

  • Shortened exceptionally long track filenames with a stable uniqueness suffix, preventing Windows output-path failures from being misreported as YouTube throttling.
  • Added optional native Opus output under Settings. Opus streams are remuxed without lossy re-encoding and support metadata and artwork.
  • Prevented FFmpeg failures caused by selecting Apple Music or iTunes auto-import folders.
  • Fixed Windows release builds by accepting Deno's PowerShell-formatted SHA256 metadata while retaining archive integrity verification on every platform.
  • Forced UTF-8 for packaged downloader and FFmpeg subprocesses so Unicode song titles and sanitized punctuation work reliably on Windows.

How It Works

  1. Open the app. First launch may take a few seconds.
  2. Click Choose... next to Source.
  3. Paste a supported playlist or album link, then load it.
  4. Choose an output folder.
  5. Click Start.

CSV import is still available when a service link is unsupported, private, incomplete, or when CSVMusic warns that a URL import may not contain every track:

  1. Click Choose... next to Source.
  2. Select CSV File.
  3. Use the TuneMyMusic link in that window if you need to create a CSV:
    • Choose the original music service as the source.
    • Paste the same playlist link, or connect the service if TuneMyMusic asks.
    • Export to file as a CSV file.
  4. Load the CSV, choose an output folder, and click Start.

If a song cannot be matched confidently:

  • It will show up highlighted in yellow.
  • Click Alternatives to pick a better result.
  • Use Listen to preview a candidate in your browser.

What You Get

  • Audio files with:
    • Correct artist/title
    • Album info
    • Embedded artwork
  • Optional playlist files:
    • .m3u
    • .m3u8

Everything is ready to drop into iTunes, a phone, an MP3 player, or a local music library.


Important Notes

  • Keep all files in the extracted folder together.
  • The packaged app includes:
    • ffmpeg
    • yt-dlp
    • yt-dlp-ejs
    • Deno
  • Some antivirus software may flag bundled download/processing tools. These are usually false positives.
  • Your CSV stays local. Direct links are fetched only to read public playlist or album metadata.
  • YouTube Music / YouTube is contacted to search and download audio.
  • Cookies are optional, but may help with age-restricted or sign-in-only videos.
  • Current YouTube extraction requires a supported JavaScript runtime. Packaged releases include Deno and the needed yt-dlp extras; source installs should use pip install -e . and provide Deno 2.3+ or Node 22+.
  • Private playlists or pages that hide track data may not import directly. If that happens, export a CSV from TuneMyMusic and load that instead.
  • Large Spotify playlist links can be capped at 100 tracks by Spotify's public page data. If CSVMusic warns about this, open Choose... > TuneMyMusic, choose Spotify as the source, paste the same playlist link, export as CSV, then load that CSV through Choose... > CSV File.

Supported Sources

Direct link import supports public playlist or album pages from:

  • Spotify
  • Apple Music
  • YouTube Music
  • YouTube playlists
  • SoundCloud sets
  • Deezer
  • Amazon Music, when the page exposes public track data

CSV import supports any service TuneMyMusic can export, including most other music platforms.

About

Scroll down to get to the downloads! Or click on the link below

Resources

Stars

499 stars

Watchers

10 watching

Forks

Releases

Contributors

Languages