Catalog PyPI
PACKAGE EXPLORERView in registry

addsong

PyPI

Download a song from a URL or YouTube search and auto-import it into Apple Music.

apple-musiccliffmpegmusicyt-dlp
Versions collected1
Direct dependencies1From release 1.0.1
Last observed20 Oct, 19:23 UTC

README

Version 1.0.1 documentation

addsong

PyPI version Python versions License Powered by yt-dlp Tagged with ffmpeg

addsong demo

Paste a link and the song shows up in Apple Music.

addsong takes a song name or a YouTube link. It downloads the track, tags it with the title, artist, and cover art, then drops it into Apple Music. No dragging files around, just a single command.

addsong "songname"
addsong "https://www.youtube.com/watch?v=..."

Installation

You need Python 3.11 or newer, plus two tools that do the real work, yt-dlp and ffmpeg. addsong itself is a Python package you install with pipx.

1. Install addsong

pipx install addsong

Don't have pipx yet? Install it first. On macOS run brew install pipx. On Linux run pip install --user pipx (or use your distro's package). On Windows run pip install pipx. Once pipx is set up, run pipx ensurepath and reopen your terminal so addsong is on your PATH.

No pipx? pip install --user addsong works too.

2. Install yt-dlp and ffmpeg

These do the downloading and tagging. Pick the command for your system.

  macOS

brew install yt-dlp ffmpeg

  Linux and WSL

sudo apt-get install -y ffmpeg && pipx install yt-dlp

On other distros use your package manager for ffmpeg. yt-dlp can come from pipx or pip.

  Windows (PowerShell)

winget install yt-dlp.yt-dlp Gyan.FFmpeg

3. Check it

addsong --version

Updating

pipx upgrade addsong

With pip instead of pipx, run python -m pip install --user --upgrade addsong.

Shell Completions

addsong can print a completion script for your shell. Source it or save it to your shell's completion directory.

source <(addsong --print-completion bash)      # bash
addsong --print-completion zsh  > ~/.zsh/completions/_addsong   # zsh
addsong --print-completion fish > ~/.config/fish/completions/addsong.fish  # fish

See your shell's docs for where completion files go.

Your First Song

addsong "songname"

addsong shows what it found so you can fix mistakes before saving.

  Review track ♪
  Artist: Artist Name
  Title:  Song Title

  [Enter] Add  ·  [E] Edit  ·  [S] Skip
  ❯

Press Enter and the song lands in Apple Music a second later.

Commands

CommandWhat it does
addsong "name"Add the top search result
addsong "<link>"Add a specific video
addsong --results 3 "name"Add the top 3 search results
addsong --playlist "<link>"Add a whole playlist
addsong --from list.txtAdd every link in a file
addsong subscribe "<link>"Follow a playlist
addsong syncAdd new songs from playlists you follow
addsong listShow playlists you follow
addsong unsubscribe "<link>"Stop following a playlist
addsong forgetForget everything added so it can be re-added

Flags

FlagWhat it does
-yDon't ask, just add it
--reviewAlways pause to fix the title or artist first
--reimportAdd a song again even if you already have it
--dry-runShow what would happen without downloading
--format FMTOutput format, m4a (default), mp3, flac, opus
--quality NAudio quality 0 to 10, 0 is best and the default
--notifyPop a desktop notification as each song imports
--quiet / --verboseShow less or more output
--helpFull list of commands and options

Set environment variables like ADDSONG_WATCH_DIR to change defaults. Run addsong --help for the full list.

Download Location

On macOS and Windows songs go straight into Apple Music. On Linux they land in ~/Music/addsong/. Point them somewhere else with ADDSONG_WATCH_DIR=/your/folder.

Common Errors

If you see command not found, run pipx ensurepath and reopen your terminal. Still stuck? Repeat the Installation step.

If a song downloads but never shows up, open the Apple Music app and keep it open while adding (macOS or Windows).

If a download fails, update yt-dlp, then retry with --verbose to see why.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
1.0.115 Jul 20261

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
ado11231/addsong

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:23 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:11a897facf5976689e8dd1f72e548f1fa2a6c511486675286bbcecf7baec6cab