main
1# Music Playlist Downloader Configuration
2# Copy this file to /neo/music/music-playlist-dl.yaml and customize
3
4# Base directory for downloads
5# - Downloads go to: {base_dir}/{show}/
6# - Playlists go to: {base_dir}/../playlists/{artist} - {show}.m3u
7# Example base_dir: /neo/music/mixes or /neo/music/podcasts
8# Playlists will be in: /neo/music/playlists/
9base_dir: /neo/music/mixes
10
11# Beets integration (optional, disabled by default)
12# Enable this to automatically import podcasts to beets music library manager
13# for enhanced metadata management, smart playlists, and database queries
14beets:
15 enable: false # Set to true to enable beets integration
16
17 # Import new downloads automatically after each run
18 import_after_download: true
19
20 # Write beets metadata to file tags (recommended)
21 write_tags: true
22
23 # Default tags applied to ALL shows
24 # These can be overridden per-show using beets_tags
25 default_tags:
26 albumtype: podcast
27 genre: Electronic
28 language: eng
29
30# Mixcloud shows to download
31# Format: Mixcloud handle, artist name, show name, and optional beets_tags
32mixcloud_shows:
33 - handle: aboveandbeyond
34 artist: Above & Beyond
35 show: Group Therapy
36 beets_tags: # Optional: override/extend default_tags
37 genre: Progressive Trance
38 comments: "Weekly trance radio show"
39 - handle: ArminvanBuuren
40 artist: Armin van Buuren
41 show: A State of Trance
42 beets_tags:
43 genre: Trance
44 comments: "Longest-running trance show (since 2001)"
45 - handle: CosmicGate
46 artist: Cosmic Gate
47 show: Wake Your Mind Radio
48 # No beets_tags - uses default_tags only
49 - handle: FerryCorsten
50 artist: Ferry Corsten
51 show: Resonation Radio
52 - handle: paulvandyk
53 artist: Paul van Dyk
54 show: VONYC Sessions
55 - handle: sandervandoornofficial
56 artist: Sander van Doorn
57 show: Identity
58 - handle: victordinaire
59 artist: Dinaire+Bissen
60 show: This Is HalfwayHaus
61
62# SoundCloud shows to download
63# Format: Full URL, artist name, and show name
64soundcloud_shows:
65 - url: https://soundcloud.com/garethemery/sets/the-gareth-emery-podcast
66 artist: Gareth Emery
67 show: The Gareth Emery Podcast
68 - url: https://soundcloud.com/clublifebytiesto
69 artist: Tiësto
70 show: CLUBLIFE
71
72# yt-dlp options
73yt_dlp_options:
74 format: bestaudio # Download best audio quality
75 audio_format: opus # Convert to Opus (smaller, better quality than MP3)
76 audio_quality: 128K # 128kbps Opus is excellent for podcasts/DJ mixes
77 add_metadata: true # Add metadata (artist, album) to files
78 embed_thumbnail: true # Embed artwork in audio files
79 continue: true # Resume partial downloads
80 ignore_errors: true # Continue on errors
81
82 # Alternative formats:
83 # audio_format: mp3 # Use MP3 for broader compatibility (car stereos, etc.)
84 # audio_format: m4a # Use M4A/AAC for Apple devices
85 # audio_quality: 192K # Higher quality (larger files)
86
87# Directory Structure
88# After running, your directory structure will look like:
89#
90# /neo/music/
91# ├── mixes/ # base_dir (or podcasts/)
92# │ ├── Group Therapy/
93# │ │ ├── .downloaded.txt # Archive file (tracks downloaded IDs)
94# │ │ ├── Group Therapy 657-abc123.m4a
95# │ │ └── Group Therapy 658-def456.m4a
96# │ ├── A State of Trance/
97# │ │ ├── .downloaded.txt
98# │ │ └── ASOT Episode 1255-xyz789.m4a
99# │ └── CLUBLIFE/
100# │ ├── .downloaded.txt
101# │ └── CLUBLIFE Podcast 908-ghi012.m4a
102# └── playlists/ # Shared playlists directory
103# ├── Above & Beyond - Group Therapy.m3u
104# ├── Armin van Buuren - A State of Trance.m3u
105# └── Tiësto - CLUBLIFE.m3u
106#
107# Download Archive Files:
108# Each show directory contains a .downloaded.txt file that tracks episode IDs.
109# This prevents re-downloading episodes even if files are renamed or moved.
110# Do not delete these files - they ensure efficient incremental downloads.
111
112# Playlist Format
113# Playlists are standard M3U format with relative paths:
114#
115# #EXTM3U
116# ../Group Therapy/Group Therapy 657-abc123.m4a
117# ../Group Therapy/Group Therapy 658-def456.m4a
118
119# Podcast Information & Sources
120#
121# Above & Beyond - Group Therapy
122# Weekly trance podcast (ABGT)
123# https://podcasts.apple.com/us/podcast/above-beyond-group-therapy
124#
125# Armin van Buuren - A State of Trance
126# Longest-running trance show (since 2001)
127# https://www.astateoftrance.com/
128#
129# Cosmic Gate - Wake Your Mind Radio
130# Weekly progressive/trance show
131# https://podcasts.apple.com/us/podcast/cosmic-gate-wym-radio
132#
133# Ferry Corsten - Resonation Radio
134# Weekly electronic music show
135# https://www.ferrycorsten.com/radio
136#
137# Paul van Dyk - VONYC Sessions
138# Grammy winner's weekly show
139# https://podcasts.apple.com/us/podcast/paul-van-dyks-vonyc-sessions-podcast
140#
141# Gareth Emery - The Gareth Emery Podcast
142# Original podcast (ended 2016)
143# https://soundcloud.com/garethemery/sets/the-gareth-emery-podcast
144#
145# Tiësto - CLUBLIFE
146# Weekly club tracks since 2007
147# https://podcasts.apple.com/us/podcast/clublife
148
149# Beets Integration Workflow
150#
151# Beets (https://beets.io/) is a music library manager that provides:
152# - Rich metadata management and tagging
153# - Smart playlists based on queries
154# - Database-driven music organization
155# - MusicBrainz integration (not used for podcasts)
156#
157# Setup:
158# 1. Enable beets integration by setting beets.enable: true above
159# 2. Run music-playlist-dl --import-existing to import all existing files once
160# 3. Future runs will automatically import new downloads
161#
162# Files stay in {base_dir}/{show}/ - beets imports in-place (doesn't move)
163# This preserves yt-dlp's download archive (.downloaded.txt) for deduplication
164#
165# Tag Hierarchy:
166# - default_tags: Applied to ALL shows (albumtype, genre, language, etc.)
167# - beets_tags: Per-show overrides/extensions (genre, comments, year, etc.)
168# - Always set: artist and album (from show configuration)
169#
170# Example queries after import:
171# beet ls albumtype:podcast # List all podcasts
172# beet ls genre:Trance # List all trance shows
173# beet ls artist:"Armin van Buuren" # List ASOT episodes
174# beet write albumtype:podcast # Write tags to files