whatisgithub

What is musicdl?

charlespikachu/musicdl — explained in plain English

Analysis updated 2026-06-26

4,687PythonAudience · generalComplexity · 2/5LicenseSetup · easy

In one sentence

A command-line Python tool for downloading music from over a dozen streaming platforms including YouTube, Spotify, NetEase, and QQ Music, for personal, non-commercial use only.

Mindmap

mindmap
  root((musicdl))
    What it does
      Music download
      Multi-platform
      Personal use only
    Platforms
      YouTube Spotify Apple
      NetEase QQ Kugou
      TIDAL Deezer SoundCloud
    Usage
      Command line tool
      Python library
      Browser companion
    License
      Non-commercial only
      Personal use
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Download songs or playlists from YouTube, Spotify, or Apple Music for personal offline listening.

USE CASE 2

Fetch audio from Chinese streaming platforms like NetEase Cloud Music, QQ Music, or Kugou.

USE CASE 3

Use as a Python library to automate music downloads in your own scripts.

USE CASE 4

Search and preview tracks in a browser without installing anything using the companion MusicSquare web app.

What is it built with?

Python

How does it compare?

charlespikachu/musicdlnateraw/stable-diffusion-videosladaapp/lada
Stars4,6874,6874,688
LanguagePythonPythonPython
Setup difficultyeasyhardhard
Complexity2/54/53/5
Audiencegeneralgeneralgeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

For paywalled content you must already hold an authorized subscription to that service, the tool does not bypass paywalls.

Free to use and study for personal and educational purposes only, commercial use, redistribution, or bundling without permission is not allowed.

So what is it?

Musicdl is a Python tool for downloading music from a large number of streaming platforms. You run it from the command line or use it as a Python library, point it at a song title or playlist, and it fetches the audio file for you. The whole thing is written without heavy dependencies, which makes it easy to install and read through. The list of supported platforms is long. On the Chinese side it covers NetEase Cloud Music, QQ Music, Kugou, Kuwo, Migu, Bilibili audio, and several others. For international services it supports YouTube, Spotify, Apple Music, TIDAL, Deezer, SoundCloud, Qobuz, and JOOX, among others. The README lists each platform with a checkmark for whether search and download are both supported. The project is updated regularly, with recent releases adding new platforms, fixing broken third-party API endpoints, and improving lossless audio support. The disclaimer in the README is clear and worth reading. The tool is intended for personal, educational, and research use only. Commercial use is prohibited. It works by talking to publicly accessible web endpoints and does not store or redistribute copyrighted audio files. If you want to download content that is behind a subscription paywall, you are expected to already have authorized access through that service. Installation is handled through PyPI using pip, which is the standard Python package manager. The README also links to documentation hosted on readthedocs.io and to a companion project called MusicSquare, a browser-based version where you can search and play tracks without installing anything locally. The license is PolyForm Noncommercial 1.0.0, which means you can use and study the code freely for non-commercial purposes but cannot sell or bundle it without permission. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
How do I install musicdl via pip and download my first song from NetEase Cloud Music using the command line?
Prompt 2
Show me how to import musicdl as a Python library and download a track by title programmatically in a script.
Prompt 3
I subscribe to TIDAL and want to download tracks I'm authorized to access, how do I authenticate musicdl with my TIDAL account?
Prompt 4
How do I download an entire playlist from QQ Music using musicdl and save the files to a specific folder?

Frequently asked questions

What is musicdl?

A command-line Python tool for downloading music from over a dozen streaming platforms including YouTube, Spotify, NetEase, and QQ Music, for personal, non-commercial use only.

What language is musicdl written in?

Mainly Python. The stack also includes Python.

What license does musicdl use?

Free to use and study for personal and educational purposes only, commercial use, redistribution, or bundling without permission is not allowed.

How hard is musicdl to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is musicdl for?

Mainly general.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.