Files
beets/config/config.yaml
2026-02-10 14:32:07 +01:00

171 lines
6.0 KiB
YAML

# Beets funktioniert so, dass es die Musik aus einem Ordner nimmt, taggt und
# dann in deine library verschiebt oder kopiert mit den richtigen tags und filename.
# Beets hat eine interne DB die sich merkt was importiert ist, damit es keine duplikate gibt.
# Ich habe mehrere tag-sources angelegt, da es eindeutige IDs von MusicBrainz und Spotify gibt, mit denen auch externe Programme arbteiten können
# Plugins-liste ist selbstverständlich. Wenn du ein Plugin nicht nutzen willst, einfach entfernen oder unten aus der config streichen.
plugins: fetchart embedart scrub replaygain lastgenre chroma web spotify musicbrainz inline lyrics duplicates deezer unimported
# Lass das so und mounte /music in docker
directory: /music
# Die DB von beets. Lass das auch so und mounte den config ordner
library: /config/musiclibrary.blb
# Album cover wird unter dem namen im directory des albums abgelegt
art_filename: cover
threaded: yes
original_date: yes
per_disc_numbering: no
# Da ich will, dass vorm Track immer zwei nummern sind, hab ich diese custom funktion
# 09 - Track9, 10 - Track10
item_fields:
twodigittrack: "'{:02n}'.format(track)"
# Es gibt verschiedene pfade die man anlegen kann für alben, singles, usw. Wenn man nur default einstellt, wird immer default genommen.
# Mit meinen Settings entstehen lange file-namen, aber es ist immer eindeutig und tagger können auch metadaten aus den filenames ziehen.
# Da man die filenames sowieso nie sieht, empfehle ich dir das zu lassen
# Du solltest IMMER zumindest nach Album sortieren, da beets darauf ausgelegt ist immer ganze alben zu taggen
# Wenn du jetzt The Silent Force von Within Temptation runterlädst, wird es unter dem Pfad gespeichert:
# Music/Within Temptation/Within Temptation - The Silent Force/Within Temptation - The Silent Force - 01 Intro.flac
paths:
default: $albumartist/$albumartist - $album%aunique{}/$albumartist - $album - ${twodigittrack} $title
# Ohne meine custom funktion mit zwei digits:
# default: $albumartist/$albumartist - $album%aunique{}/$albumartist - $album - $track $title
# import beschreibt wie Musik getaggt wird und was nach dem taggen passiert.
# write immer 'yes' lassen
# copy bedeutet dass musik von /downloads zu /music kopiert wird
# move verschiebt die musik stattdessen
# wenn du alles movst lass incremental auf 'no', aber wenn du nur kopierst, setz es auf 'yes',
# damit die gleichen Sachen nicht immer wieder getaggt werdn
import:
write: yes
copy: no
move: yes
resume: ask
incremental: no
quiet_fallback: skip
timid: no
log: /config/beet.log
incremental_skip_later: yes
duplicate_action: skip # or something similar
# plugin mit dem man alben auflisten lassen kann, die zwar im Ordner /music sind aber nicht mit beets importiert wurden
unimported:
ignore_extensions: jpg png
ignore_subdirectories: venv _Playlists
# fügt genre metadaten hinzu
# auto heißt immer dass es automatisch beim import passiert. ansonsten musst du das plugin manuell starten
lastgenre:
auto: yes
source: album
force: no
keep_existing: yes
# einstellungen wie entschieden wird, dass es ein 'match' gibt
# ich habe eingestellt dass er digital media bevorzugen soll. country 'XW' heißt worldwide, also für digitale releases
# lass das einfach so für die aktuellsten tags.
match:
preferred:
countries: ['XW', 'XE', 'EU']
media: ['Digital Media', 'CD']
# normalerweise will beets, dass du alles was kein 100% match ist, selbst entscheidest.
# mit der einstellung wird alles was über 85% accuracy ist ohne user-confirmation getaggt
strong_rec_thresh: 0.85
# mit dem plugin werden metadaten von spotify gezogen
# musst in der spotify entwickler konsole einen api key anlegen
spotify:
mode: list
region_filter:
show_failures: no
tiebreak: popularity
regex: []
search_query_ascii: no
client_id: DeineClientID
client_secret: DeinClientSecret
tokenfile: spotify_token.json # lass das
data_source_mismatch_penalty: 0.5 # bei mehreren taggern, welche bevorzugt werden. Höher bedeutet niedrigere Prio. 0.0 - 1.0
search_limit: 5 # wie viele suchergebnisse pro anfrage
# mit dem plugin werden metadaten von musicbrainz gezogen
# würde ich spotify bevorzugen, ist ne riesen datenbank an musik
musicbrainz:
host: musicbrainz.org
https: no
ratelimit: 1
ratelimit_interval: 1.0
extra_tags: []
genres: yes
genres_tag: genre
external_ids:
discogs: no
bandcamp: yes
spotify: yes
deezer: no
beatport: no
tidal: yes
data_source_mismatch_penalty: 0.4 # hat im vergleich höhere prio als spotify
search_limit: 5
# mit dem plugin werden metadaten von deezer gezogen
# hab ich nur als fallback
deezer:
search_query_ascii: no
data_source_mismatch_penalty: 0.6 # prio musicbrainz > spotify > deezer
search_limit: 5
# damit werden
embedart:
auto: yes
# damit werden album covers gezogen. Braucht man nicht unbedingt, da alles auf tidal schon eins hat
# einfach auto > no, wenn dus nicht willst
fetchart:
auto: yes
minwidth: 1000
maxwidth: 1200
sources: filesystem spotify lastfm amazon itunes
enforce_ratio: yes
cautious: yes
lastfm_key: lastfmkey
# hab ich selbst noch nicht eingestellt. Tidal hat aber als auch schon lyrics
lyrics:
auto: no
# Songs sind verschieden laut, deswegen gibts das plugin was die lautstärke taggt.
# Ohne den Tag funktioniert Lautstärke-Normalisierung von Musikplayern nicht und du hast ständig schwankende lautstärke
replaygain:
backend: ffmpeg
method: ebu
auto: yes
overwrite: yes
targetlevel: 89
r128: [Opus]
chunk_at: 5000
per_disc: yes
scrub:
auto: yes
# Ersetzt sonderzeichen in musikdateien
# lass das an, sonst bekommst du richtig probleme mit dem filesystem
replace:
'^\.': _
'[\xE8-\xEB]': e
'[\xEC-\xEF]': i
'[\xE2-\xE6]': a
'[\xF2-\xF6]': o
'[\xF8]': o
'\.$': _
'\s+$': ''
'[<>:"\?\*\|]': ''
# finger weg
web:
host: 0.0.0.0
port: 8337