Skip to content

Instantly share code, notes, and snippets.

@bbaster
Created September 24, 2024 20:56
Show Gist options
  • Save bbaster/8cdff621fbb43475c878ede51a287a6e to your computer and use it in GitHub Desktop.
Save bbaster/8cdff621fbb43475c878ede51a287a6e to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
#A script for playing YouTube playlists
#Recommended mpv plugins: https://github.com/TheCactusVert/mpv-sponsorblock, https://github.com/hoyon/mpv-mpris
browser=firefox
echo "Input YouTube playlist link: "
read -r link
id=$([[ "$link" =~ ^https?\:\/\/(www|m)\.youtube\.com\/watch\?v\=[A-Za-z0-9_]+\&list\=([A-Za-z0-9_]+) ]] && \
echo "${BASH_REMATCH[2]}")
echo "Fetching playlist JSON from YouTube..."
yt-dlp "$link" -j --flat-playlist --cookies-from-browser $browser > $id.json
echo "Parsing JSON..."
cat << EOF > $id.m3u8
#EXT-X-ALLOW-CACHE:YES
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
EOF
jq -r '.webpage_url' $id.json >> $id.m3u8
mpv $id.m3u8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment