mirror of
https://github.com/LukeHagar/ytdl-sub.git
synced 2025-12-06 04:22:12 +00:00
138 lines
4.9 KiB
YAML
138 lines
4.9 KiB
YAML
# Define any number of subscriptions in a single file, or use multiple
|
|
# files to organize (i.e by use-case, website, genre, etc)
|
|
#
|
|
# Each example show-cases every use case:
|
|
# - YouTube
|
|
# - Songs
|
|
# - From a single video
|
|
# - Albums
|
|
# - From a video, where each song is represented by chapters
|
|
# - From a playlist where each video is a song on the album
|
|
# - Discographies
|
|
# - From a channel or a channel's set of playlists
|
|
# - Bandcamp
|
|
# - Track, Album, Artist URL as a Discography
|
|
# - Soundcloud
|
|
# - Track, Album, Artist URL as a Discography
|
|
#
|
|
####################################################################################################
|
|
# YOUTUBE - PLAYLIST OF ALBUMS
|
|
# See https://www.youtube.com/playlist?list=PLBsm_SagFMmdWnCnrNtLjA9kzfrRkto4i
|
|
#
|
|
# Downloads the GameChops Albums' playlist. Each video in the playlist is an album with
|
|
# chapters representing songs.
|
|
game_chops:
|
|
preset: "albums_from_chapters"
|
|
|
|
# Perform regex to extract title from the chapter's title to not include the track number.
|
|
# Configuring this hard is a bit overkill, but I'm a perfectionist :-)
|
|
regex:
|
|
from:
|
|
chapter_title:
|
|
match:
|
|
- "^\\d+\\.\\.(.*)" # Captures 'title' from '1..title'
|
|
capture_group_names:
|
|
- "captured_track_title"
|
|
capture_group_defaults:
|
|
- "{chapter_title}"
|
|
|
|
# Explicitly set the URL, track artist, and genre.
|
|
# Override various track properties using the regex variables we extracted.
|
|
overrides:
|
|
url: "https://www.youtube.com/playlist?list=PLBsm_SagFMmdWnCnrNtLjA9kzfrRkto4i"
|
|
track_artist: "GameChops"
|
|
track_genre: "Lofi"
|
|
track_title: "{captured_track_title}"
|
|
|
|
|
|
####################################################################################################
|
|
# YOUTUBE - MANY ALBUMS FROM MANY ARTISTS UPLOADED BY A CHANNEL
|
|
# See https://www.youtube.com/@heavymetalofeasternbloc
|
|
#
|
|
# Downloads the entire 'Heavy Metal from the Eastern Bloc' channel. Each video they upload
|
|
# is an album from Eastern Europe with chapters representing songs.
|
|
eastern_bloc:
|
|
# Inherit albums from chapters
|
|
preset: "albums_from_chapters"
|
|
|
|
# Perform regex on many fields (title, description, chapter title) to extract as much
|
|
# metadata as possible
|
|
regex:
|
|
skip_if_match_fails: False # Error if regex match fails
|
|
from:
|
|
title:
|
|
match:
|
|
- "^(.*) - (.*) \\|\\|.*" # Captures artist, album from 'artist - album ||...'
|
|
- "^(.*) - (.*) \\[.*" # Captures artist, ablum from 'artist - album [...'
|
|
- "^(.*) - (.*)" # Captures artist, ablum from 'artist - album'
|
|
capture_group_names:
|
|
- "captured_track_artist"
|
|
- "captured_track_album"
|
|
description:
|
|
match:
|
|
- "Genre:\\s*(.*)\\s*\n(?:Rec.+|Year):\\s*.*(\\d{4})\\s*\\n" # Captures genre and recorded year
|
|
capture_group_names:
|
|
- "captured_track_genre"
|
|
- "captured_track_year"
|
|
chapter_title:
|
|
match:
|
|
- "^(?:\\d+\\.\\s*|)(.*)" # Captures title from '1. title'
|
|
capture_group_names:
|
|
- "captured_track_title"
|
|
capture_group_defaults:
|
|
- "{chapter_title}"
|
|
|
|
# Explicitly set the URL.
|
|
# Override various track properties using the regex variables we extracted.
|
|
overrides:
|
|
url: "https://www.youtube.com/@heavymetalofeasternbloc"
|
|
track_artist: "{captured_track_artist}"
|
|
track_album: "{captured_track_album}"
|
|
track_title: "{captured_track_title}"
|
|
track_year: "{captured_track_year}"
|
|
track_genre: "Eastern Bloc {captured_track_genre}"
|
|
|
|
|
|
####################################################################################################
|
|
# BANDCAMP - DISCOGRAPHY
|
|
# See https://emilyharpist.bandcamp.com/
|
|
#
|
|
# Downloads Emily's entire bandcamp discography. yt-dlp represents albums as playlist.
|
|
emily_hopkins:
|
|
preset: "albums_from_playlists"
|
|
regex:
|
|
from:
|
|
title:
|
|
match:
|
|
- "^Emily Hopkins - (.*)" # Captures 'title' from 'Emily Hopkins - title'
|
|
capture_group_names:
|
|
- "captured_track_title"
|
|
capture_group_defaults:
|
|
- "{title}"
|
|
|
|
# Explicitly set the URL, track artist, and genre.
|
|
# Override various track properties using the regex variables we extracted.
|
|
overrides:
|
|
url: "https://emilyharpist.bandcamp.com/"
|
|
track_artist: "Emily Hopkins"
|
|
track_genre: "Lofi"
|
|
track_title: "{captured_track_title}"
|
|
|
|
|
|
####################################################################################################
|
|
# SOUNDCLOUD - DISCOGRAPHY
|
|
# See https://soundcloud.com/jessebannon
|
|
#
|
|
# Downloads my acoustic 'album' and various tracks from SoundCloud using the soundcloud
|
|
# discography preset. I'm not very good so keep your expectations low :-)
|
|
jmbannon:
|
|
# Inherit soundcloud_discography preset
|
|
preset: "soundcloud_discography"
|
|
|
|
# Explicitly set the SoundCloud artist url, track artist, and genre.
|
|
overrides:
|
|
sc_artist_url: "sc_artist_url"
|
|
track_artist: "jmbannon"
|
|
track_genre: "Acoustic"
|
|
|