Play LastFM recommendations on linux: using mpd, yt-dlp and bash
Go to file
Nathan Paul 36ec69f847
readme: cleanup
2023-11-18 10:59:06 +05:30
.github feat: -c flag 2023-08-07 18:37:23 +05:30
docs feat: psync 2023-10-23 11:05:08 +05:30
LICENSE add license 2023-07-30 00:03:46 +05:30 readme: cleanup 2023-11-18 10:59:06 +05:30
charts feat: charts 2023-08-02 13:03:25 +05:30
jukebox readme: cleanup 2023-11-18 10:59:06 +05:30
listen feat: -c flag 2023-08-07 18:37:23 +05:30
psync psync: use /songs subfolder 2023-11-04 19:26:43 +05:30


Play LastFM music recommendations using: mpd(1), yt-dlp(1) and bash(1)

jukebox -h
  -a: <artist name>
  -g: <genre name>
  -s: <song name>
  -u: <lastfm: username>
  -m: <lastfm: mix | recommended | library>
  -p: <lastfm: playlist url>
  -l: vosk: search songs with your voice
  -y: use ytmusic tags for songs
  -c: top charts in your region (setup your api_key)

usage: demo

jukebox -g "rap"
jukebox -m "library"
jukebox -a "Drake"
jukebox -s "Never Gonna Give You Up"


git clone
cd jukebox
  • Open the script in a text editor: nvim jukebox
  • Set your LastFM username: [default: polarhive]
  • Set your preferred mode: [default: mix]
    • recommended: Listen to recommended music from LastFM
    • library: Listen to music youve scrobbled before
    • mix: Listen to music youve scrobbled before + recommendations from LastFM
  • Install: mpd, yt-dlp, jq and optionally mpdscribble (to scrobble to LastFM)
  • Activate services: systemctl --user enable --now mpd mpdscribble before running jukebox


  • Read my blog /post or use my /dotfiles for my exact setup
  • charts: requires an $api_key
  • listen: pip install vosk google-speech and pacman -S sox
  • docs/stream: Stream songs to your other devices like a phone, laptop or speaker
  • docs/phone: Copy your current-playlist to your phone: using rsync & adb for offline-playback

This repo is hosted on Codeberg & mirrored to GitHub for traffic.

license: GPLv3 or Later