Ein automatischer Downloader für Soulseek, erstellt mit Soulseek.NET. Akzeptiert CSV-Dateien sowie Spotify- und YouTube-URLs.
Unterstützt das Herunterladen von Wiedergabelisten und Alben; wählt die besten Dateien entsprechend den vom Benutzer konfigurierten Dateibedingungen und Heuristiken aus.
Sehen Sie sich die Anwendungsbeispiele an.
Usage: sldl <input> [OPTIONS]
<input> A url, search string, or path to a local CSV file.
Run --help "input" to view the accepted inputs.
Can also be passed with -i, --input <input>
--user <username> Soulseek username
--pass <password> Soulseek password
-p, --path <path> Download directory
--input-type <type> [csv|youtube|spotify|bandcamp|string|list]
--name-format <format> Name format for downloaded tracks. See --help name-format
-n, --number <maxtracks> Download the first n tracks of a playlist
-o, --offset <offset> Skip a specified number of tracks
-r, --reverse Download tracks in reverse order
-c, --config <path> Set config file location. Set to 'none' to ignore config
--profile <names> Configuration profile(s) to use. See --help ""config"".
--concurrent-downloads <num> Max concurrent downloads (default: 2)
--write-playlist Create an m3u playlist file in the output directory
--playlist-path <path> Override default path for m3u playlist file
--no-skip-existing Do not skip downloaded tracks
--no-write-index Do not create a file indexing all downloaded tracks
--index-path <path> Override default path for sldl index
--skip-check-cond Check file conditions when skipping existing files
--skip-check-pref-cond Check preferred conditions when skipping existing files
--skip-music-dir <path> Also skip downloading tracks found in a music library by
comparing filenames. Not 100% reliable.
--skip-not-found Skip searching for tracks that weren't found on Soulseek
during the last run.
--listen-port <port> Port for incoming connections (default: 49998)
--on-complete <command> Run a command whenever a file is downloaded.
Available placeholders: {path} (local save path), {title},
{artist},{album},{uri},{length},{failure-reason},{state}.
Prepend a state number to only run in specific cases:
1:, 2:, 3:, 4: for the Downloaded, Failed, Exists, and
NotFoundLastTime states respectively.
E.g: '1:<cmd>' will only run the command if the file is
downloaded successfully. Prepend 's:' to use the system
shell to execute the command.
--print <option> Print tracks or search results instead of downloading:
'tracks': Print all tracks to be downloaded
'tracks-full': Print extended information about all tracks
'results': Print search results satisfying file conditions
'results-full': Print search results including full paths.
--no-progress Disable progress bars/percentages, only simple printing
--debug Print extra debug info
--fast-search Begin downloading as soon as a file satisfying the preferred
conditions is found. Only for normal download mode.
--remove-ft Remove 'feat.' and everything after before searching
--no-remove-special-chars Do not remove special characters before searching
--remove-brackets Remove square brackets and their contents before searching
--regex <regex> Remove a regexp from all track titles and artist names.
Optionally specify a replacement regex after a semicolon.
Add 'T:', 'A:' or 'L:' at the start to only apply this to
the track title, artist, or album respectively.
--artist-maybe-wrong Performs an additional search without the artist name.
Useful for sources like SoundCloud where the "artist"
could just be an uploader. Note that when downloading a
YouTube playlist via url, this option is set automatically
on a per-track basis, so it is best kept off in that case.
-d, --desperate Tries harder to find the desired track by searching for the
artist/album/title only, then filtering. (slower search)
--fails-to-downrank <num> Number of fails to downrank a user's shares (default: 1)
--fails-to-ignore <num> Number of fails to ban/ignore a user's shares (default: 2)
--yt-dlp Use yt-dlp to download tracks that weren't found on
Soulseek. yt-dlp must be available from the command line.
--yt-dlp-argument <str> The command line arguments when running yt-dlp. Default:
"{id}" -f bestaudio/best -cix -o "{savepath}.%(ext)s"
Available vars are: {id}, {savedir}, {savepath} (w/o ext).
Note that -x causes yt-dlp to download webms in case ffmpeg
is unavailable.
--search-timeout <ms> Max search time in ms (default: 6000)
--max-stale-time <ms> Max download time without progress in ms (default: 50000)
--searches-per-time <num> Max searches per time interval. Higher values may cause
30-minute bans, see --help "search". (default: 34)
--searches-renew-time <sec> Controls how often available searches are replenished.
See --help "search". (default: 220)
--spotify-id <id> Spotify client ID
--spotify-secret <secret> Spotify client secret
--spotify-token <token> Spotify access token
--spotify-refresh <token> Spotify refresh token
--remove-from-source Remove downloaded tracks from source playlist
--youtube-key <key> Youtube data API key
--get-deleted Attempt to retrieve titles of deleted videos from wayback
machine. Requires yt-dlp.
--deleted-only Only retrieve & download deleted music.
--artist-col Artist column name
--title-col Track title column name
--album-col Album column name
--length-col Track length column name
--album-track-count-col Album track count column name (sets --album-track-count)
--yt-desc-col Youtube description column (improves --yt-parse)
--yt-id-col Youtube video id column (improves --yt-parse)
--time-format <format> Time format in Length column of the csv file (e.g h:m:s.ms
for durations like 1:04:35.123). Default: s
--yt-parse Enable if the CSV contains YouTube video titles and channel
names; attempt to parse them into title and artist names.
--remove-from-source Remove downloaded tracks from source CSV file
--format <formats> Accepted file format(s), comma-separated, without periods
--length-tol <sec> Length tolerance in seconds
--min-bitrate <rate> Minimum file bitrate
--max-bitrate <rate> Maximum file bitrate
--min-samplerate <rate> Minimum file sample rate
--max-samplerate <rate> Maximum file sample rate
--min-bitdepth <depth> Minimum bit depth
--max-bitdepth <depth> Maximum bit depth
--strict-title File name must contain title
--strict-artist File path must contain artist name
--strict-album File path must contain album name
--banned-users <list> Comma-separated list of users to ignore
--pref-format <formats> Preferred file format(s), comma-separated (default: mp3)
--pref-length-tol <sec> Preferred length tolerance in seconds (default: 3)
--pref-min-bitrate <rate> Preferred minimum bitrate (default: 200)
--pref-max-bitrate <rate> Preferred maximum bitrate (default: 2500)
--pref-min-samplerate <rate> Preferred minimum sample rate
--pref-max-samplerate <rate> Preferred maximum sample rate (default: 48000)
--pref-min-bitdepth <depth> Preferred minimum bit depth
--pref-max-bitdepth <depth> Preferred maximum bit depth
--pref-banned-users <list> Comma-separated list of users to downrank
--strict-conditions Skip files with missing properties instead of accepting by
default; if --min-bitrate is set, ignores any files with
unknown bitrate.
-a, --album Album download mode: Download a folder
-t, --interactive Interactive mode, allows to select the folder and images
--album-track-count <num> Specify the exact number of tracks in the album. Add a + or
- for inequalities, e.g '5+' for five or more tracks.
--album-art <option> Retrieve additional images after downloading the album:
'default': No additional images
'largest': Download from the folder with the largest image
'most': Download from the folder containing the most images
--album-art-only Only download album art for the provided album
--no-browse-folder Do not automatically browse user shares to get all files in
in the folder
--failed-album-path Path to move all album files to when one of the items from
the directory fails to download. Set to 'delete' to delete
the files instead. Set to 'disable' keep it where it is.
Default: {configured output dir}/failed
-g, --aggregate Aggregate download mode: Find and download all distinct
songs associated with the provided artist, album, or title.
--aggregate-length-tol <tol> Max length tolerance in seconds to consider two tracks or
albums equal. (Default: 3)
--min-shares-aggregate <num> Minimum number of shares of a track or album for it to be
downloaded in aggregate mode. (Default: 2)
--relax-filtering Slightly relax file filtering in aggregate mode to include
more results
Akronyme für Zwei- und Drei-Wort-Flags werden ebenfalls akzeptiert, z. B. --twf. Wenn die Option das Wort „max“ enthält, sollte das m in Großbuchstaben geschrieben werden. „Bitrate“, „Sameplerate“ und „Bittiefe“ sollten alle als zwei separate Wörter behandelt werden, z. B. --Mbr für --max-bitrate.
Flags können explizit deaktiviert werden, indem sie auf „false“ gesetzt werden, z. B. „--interactive false“.
Der Eingabetyp wird in der Regel automatisch ermittelt. Um einen bestimmten Eingabetyp zu erzwingen, legen Sie --input-type [spotify|youtube|csv|string|bandcamp|list] fest. Folgende Eingabearten stehen zur Verfügung:
Pfad zu einer lokalen CSV-Datei: Verwenden Sie eine CSV-Datei mit Titelinformationen der herunterzuladenden Songs. Die Namen der Spalten sollten Interpret, Titel, Album und Länge lauten, obwohl in der Regel auch alternative Namen erkannt werden. Es ist nur die Titel- oder Albumspalte erforderlich, zusätzliche Informationen können jedoch das Ranking der Suchergebnisse verbessern. Jede Zeile ohne Titelspaltentext wird als Album-Download behandelt.
Eine Playlist-URL: Laden Sie Songs von einer YouTube-Playlist herunter. Die Standardmethode zum Abrufen von Wiedergabelisten gibt nicht immer alle Videos zurück, insbesondere nicht diejenigen, die nicht verfügbar sind. Um alle Videotitel zu erhalten, können Sie die offizielle API verwenden, indem Sie mit --youtube-key einen Schlüssel bereitstellen. Holen Sie es sich hier: https://console.cloud.google.com. Erstellen Sie ein neues Projekt, klicken Sie auf „API aktivieren“, suchen Sie nach „YouTube-Daten“ und befolgen Sie dann die Anweisungen.
Eine Playlist-/Album-URL oder „Spotify-Likes“: Laden Sie eine Spotify-Playlist, ein Spotify-Album oder Ihre Lieblingslieder herunter. Für das Herunterladen einer privaten Playlist oder beliebter Musik sind Anmeldeinformationen erforderlich.
Erstellen Sie eine Spotify-Anwendung unter https://developer.spotify.com/dashboard/applications mit einer Weiterleitungs-URL http://localhost:48721/callback. Rufen Sie eine Anwendungs-ID und ein Geheimnis aus dem erstellten Anwendungs-Dashboard ab.
Starten Sie sldl mit den erhaltenen Anmeldeinformationen und einer autorisierten Aktion, um den Anmeldevorgang für die Spotify-App auszulösen:
sldl spotify-likes --spotify-id 123456 --spotify-secret 123456 -n 1 --print-tracks
sldl versucht, automatisch einen Browser zu öffnen, greift jedoch auf die Protokollierung der Anmeldefluss-URL zur Ausgabe zurück. Nachdem der Anmeldevorgang abgeschlossen ist, gibt sldl ein Token und ein Aktualisierungstoken aus und beendet die Ausführung des aktuellen Befehls.
Um zu überspringen, dass bei jeder Verwendung von sldl ein Anmeldevorgang erforderlich ist, können das Token und das Aktualisierungstoken für sldl bereitgestellt werden (Hinweis: Speichern Sie diese Informationen in der Konfigurationsdatei, um Befehle weniger ausführlich zu gestalten):
sldl spotify-likes --spotify-id 123456 --spotify-secret 123456 --spotify-refresh 123456 --spotify-token 123456 -n 1 --pt
Der Spotify-Token-Zugriff ist nur 1 Stunde lang gültig. Mit spotify-refresh kann sldl den Zugriff bei jeder Ausführung erneuern (und kann ohne Einbindung von spotify-token verwendet werden).
Eine Bandcamp-URL: Laden Sie einen einzelnen Titel, ein Album oder die gesamte Diskografie eines Künstlers herunter. Extrahiert den Namen des Künstlers und des Albums und legt --album-track-count="n+" fest, wobei n die Anzahl der sichtbaren Titel auf der Bandcamp-Seite ist.
Name des Titels, Albums oder Interpreten, nach dem gesucht werden soll: Kann entweder eine beliebige typische Suchzeichenfolge sein (z. B. das, was Sie in die Soulseek-Suchleiste eingeben würden) oder eine durch Kommas getrennte Liste von Eigenschaften wie „title=Songname, artist=“. Künstlername, Länge=215'.
Folgende Eigenschaften werden akzeptiert:
title
artist
album
length (in seconds)
artist-maybe-wrong
album-track-count
Beispieleingaben und deren Interpretationen:
Input String | Artist | Title | Album | Length
---------------------------------------------------------------------------------
'Foo Bar' (without any hyphens) | | Foo Bar | |
'Foo - Bar' | Foo | Bar | |
'Foo - Bar' (with --album enabled) | Foo | | Bar |
'Artist - Title, length=42' | Artist | Title | | 42
'artist=AR, title=T, album=AL' | AR | T | AL |
Ein Pfad zu einer Textdatei, in der jede Zeile das folgende Format hat:
"some input" "conditions" "preferred conditions"
z.B:
"artist=Artist, album=Album" "format=mp3; br > 128" "br >= 320"
Wobei „einige Eingaben“ für einen der oben genannten Eingabetypen steht. Die Anführungszeichen können weggelassen werden, wenn das Feld keine Leerzeichen enthält. Die Bedingungsfelder werden zusätzlich zu den konfigurierten Bedingungen hinzugefügt und können auch weggelassen werden. Die Listeneingabe muss manuell mit --input-type=list aktiviert werden.
Es akzeptiert auch eine Abkürzung für Album-Downloads: a:"Artist - Album"
. Beachten Sie, dass das a:
außerhalb der Anführungszeichen stehen muss.
Die Standardeinstellung. Lädt für jeden Eingabeeintrag eine einzelne Datei herunter.
sldl sucht nach dem Album und lädt einen gesamten Ordner inklusive Nicht-Audiodateien herunter. Aktiviert, wenn die Eingabe ein Link zu einem Spotify- oder Bandcamp-Album ist, wenn die Eingabezeichenfolge oder CSV-Zeile keinen Titeltitel hat oder wenn -a/--album aktiviert ist.
Mit -g/--aggregate führt sldl eine normale Suche nach der Eingabe durch und versucht dann, die Ergebnisse in verschiedene Songs zu gruppieren und einen von jeder Art herunterzuladen, beginnend mit dem Song, der von den meisten Benutzern geteilt wird.
Beachten Sie, dass --min-shares-aggregate standardmäßig 2 ist, was bedeutet, dass Songs, die nur von einem Benutzer geteilt werden, ignoriert werden.
Aktiviert, wenn sowohl --album als auch --aggregate aktiviert sind. sldl gruppiert Freigaben und lädt eines von jedem einzelnen Album herunter, beginnend mit dem Album, das von den meisten Benutzern geteilt wird. Es wird empfohlen, dies mit --interactive zu koppeln.
Beachten Sie, dass --min-shares-aggregate standardmäßig 2 ist, was bedeutet, dass Alben, die nur von einem Benutzer geteilt werden, ignoriert werden.
Die Suchanfrage wird wie folgt ermittelt:
Der Server sperrt Sie für 30 Minuten, wenn innerhalb kurzer Zeit zu viele Suchvorgänge durchgeführt werden. Das Programm verfügt über einen Suchbegrenzer, der mit --searches-per-time und --searches-renew-time angepasst werden kann (bei Erreichen des Limits lautet der Status der Downloads „Warten“). Standardmäßig ist es so konfiguriert, dass alle 220 Sekunden bis zu 34 Suchvorgänge möglich sind. Die Standardwerte wurden durch Experimente ermittelt und können daher falsch sein.
Die folgenden Optionen erhöhen die Geschwindigkeit, können jedoch die Qualität der Suchergebnisse beeinträchtigen oder zu Instabilität führen:
Dateien, die die erforderlichen Bedingungen nicht erfüllen, werden nicht heruntergeladen. Dateien, die die Präferenzbedingungen erfüllen, werden bevorzugt; Durch die Einstellung von --pref-format "flac,wav" werden verlustfreie Dateien heruntergeladen, sofern verfügbar, und verlustbehaftete Dateien werden nur dann heruntergeladen, wenn nichts anderes vorhanden ist.
Es gibt keine standardmäßig erforderlichen Bedingungen. Die standardmäßigen bevorzugten Bedingungen sind:
pref-format = mp3
pref-length-tol = 3
pref-min-bitrate = 200
pref-max-bitrate = 2500
pref-max-samplerate = 48000
pref-strict-title = true
pref-strict-album = true
pref-accept-no-length = false
sldl bevorzugt daher MP3-Dateien mit einer Bitrate zwischen 200 und 2500 kbps und deren Länge von der angegebenen Länge um nicht mehr als 3 Sekunden abweicht. Außerdem werden Dateien bevorzugt, deren Pfade den angegebenen Titel und das angegebene Album enthalten (ohne Berücksichtigung der Groß- und Kleinschreibung und durch Begrenzungszeichen begrenzt) und deren Länge ungleich Null ist. Eine Änderung der letzten drei bevorzugten Bedingungen wird nicht empfohlen.
Beachten Sie, dass Dateien, die eine Teilmenge der bevorzugten Bedingungen erfüllen, weiterhin Dateien vorgezogen werden, die keine Bedingung erfüllen, einige Bedingungen jedoch Vorrang vor anderen haben. Beispielsweise wird eine Datei, die nur „strict-title“ (sofern aktiviert) erfüllt, immer einer Datei vorgezogen, die nur die Formatbedingung erfüllt. Führen Sie mit --print „results-full“ aus, um die Sortierlogik anzuzeigen.
Bedingungen können auch als durch Semikolons getrennte Zeichenfolge mit --cond und --pref angegeben werden, z. B. --cond "br >= 320; format = mp3,ogg; sr < 96000".
Die Optionen --strict-title, --strict-artist und --strict-album filtern alle Dateien, die den Titel/Künstler/das Album nicht im Dateinamen enthalten (ohne Berücksichtigung der Groß-/Kleinschreibung, begrenzt durch Grenzzeichen).
Eine andere Möglichkeit, falsche Downloads zu verhindern, besteht darin, --length-tol auf 3 oder weniger zu setzen, damit alle Songs ignoriert werden, die mehr als 3 Sekunden von der Eingabe abweichen. Allerdings sind alle vier Optionen bereits standardmäßig als „bevorzugte“ Bedingungen aktiviert, was bedeutet, dass solche Dateien ohnehin nur als letztes Mittel heruntergeladen werden. Daher empfiehlt es sich, sie nur dann zu aktivieren, wenn Sie falsche Downloads so weit wie möglich minimieren möchten, oder in Sonderfällen wie Titeln oder Alben, deren Name nur aus einem oder zwei Zeichen besteht.
Je nachdem, welchen Client der Peer verwendet, sind einige Informationen möglicherweise nicht verfügbar. Beispielsweise teilt der Standard-Soulseek-Client die Dateibitrate nicht mit. Wenn (z. B.) --min-bitrate gesetzt ist, akzeptiert sldl weiterhin alle Dateien mit unbekannter Bitrate. Sie können es so konfigurieren, dass alle Dateien abgelehnt werden, bei denen eine oder mehrere der überprüften Eigenschaften null (unbekannt) sind, indem Sie --strict-conditions aktivieren.
Wenn daher auch --min-bitrate festgelegt ist, werden alle von Benutzern mit dem Standardclient freigegebenen Dateien ignoriert. Beachten Sie außerdem, dass sich die standardmäßigen bevorzugten Bedingungen aufgrund der Bitraten- und Samplerate-Prüfungen bereits auf das Ranking dieser Option auswirken.
In {} eingeschlossene Variablen werden durch den entsprechenden Datei-Tag-Wert ersetzt. Das Namensformat unterstützt Unterverzeichnisse sowie bedingte Ausdrücke wie {tag1|tag2} – Wenn tag1 null ist, verwenden Sie tag2. In Klammern eingeschlossene Zeichenfolgenliterale werden bei der Nullprüfung ignoriert.
artist First artist (from the file tags)
sartist Source artist (as on CSV/Spotify/YouTube/etc)
artists Artists, joined with '&'
albumartist First album artist
albumartists Album artists, joined with '&'
title Track title
stitle Source track title
album Album name
salbum Source album name
year Track year or date
track Track number
disc Disc number
filename Soulseek filename without extension
foldername Soulseek folder name
extractor Name of the extractor used (CSV/Spotify/YouTube/etc)
default-folder Default sldl folder name (usually the playlist name)
sldl sucht an den folgenden Speicherorten nach einer Datei mit dem Namen sldl.conf:
~/AppData/Roaming/sldl/sldl.conf
~/.config/sldl/sldl.conf
sowie im Verzeichnis der ausführbaren Datei.
Beispielkonfigurationsdatei:
username = your-username
password = your-password
pref-format = flac
fast-search = true
Zeilen, die mit Hashtags (#) beginnen, werden ignoriert. Tilden in Pfaden werden als Benutzerverzeichnis erweitert.
Profile werden unterstützt:
[lossless]
pref-format = flac,wav
Um das obige Profil zu aktivieren, führen Sie --profile „lossless“ aus. Um alle verfügbaren Profile aufzulisten, führen Sie --profile „help“ aus.
Profile können anhand einiger einfacher Bedingungen automatisch aktiviert werden:
[no-stale]
profile-cond = interactive && download-mode == "album"
max-stale-time = 999999
# album downloads will never be automatically cancelled in interactive mode
[youtube]
profile-cond = input-type == "youtube"
path = ~/downloads/sldl-youtube
# download to another location for youtube
Die folgenden Operatoren werden für die Verwendung in „profile-cond“ unterstützt: &&, ||, ==, !=, !{bool}.
Folgende Variablen stehen zur Verfügung:
input-type ("youtube"|"csv"|"string"|"bandcamp"|"spotify")
download-mode ("normal"|"aggregate"|"album"|"album-aggregate")
interactive (bool)
Laden Sie Titel aus einer CSV-Datei herunter:
sldl test.csv
Laden Sie Spotify-Likes herunter:
sldl spotify-likes
Interaktiver Album-Download:
sldl "Some Album" -a -t
Laden Sie ein bestimmtes Lied namentlich herunter, vorzugsweise verlustfrei:
sldl "MC MENTAL @ HIS BEST, length=242" --pref-format "flac,wav"
Laden Sie das Album jedes Songs in einer Spotify-Playlist herunter:
sldl https://spotify/playlist/id -a
Gelöschte Videonamen abrufen und dann von einer YouTube-Playlist mit Fallback auf yt-dlp herunterladen:
sldl https://www.youtube.com/playlist/id --get-deleted --yt-dlp
Drucken Sie alle Songs eines Künstlers aus, die sich nicht in Ihrer Bibliothek befinden:
sldl "artist=MC MENTAL" --aggregate --skip-music-dir "path/to/music" --print results-full
Laden Sie alle auf soulseek gefundenen Alben eines Künstlers herunter:
sldl "artist=MC MENTAL" -a -g -t
Erstellen Sie eine Datei mit dem Namen wishlist.txt
und fügen Sie einige Elemente hinzu, wie unter „Eingabetypen“ beschrieben: Liste:
" Artist - My Favorite Song "
a: " Artist - Some Album, album-track-count=5 " " format=flac "
Fügen Sie Ihrer sldl.conf
ein Profil hinzu:
[wishlist]
input = ~/sldl/wishlist.txt
input-type = list
index-path = ~/sldl/wishlist-index.sldl
Dadurch wird eine globale Indexdatei wishlist-index.sldl
erstellt, die jedes Mal gescannt wird, wenn sldl ausgeführt wird, um bereits heruntergeladene Wunschlistenelemente zu überspringen. Wenn Sie mit der Suche fortfahren möchten, bis eine Version heruntergeladen wurde, die die bevorzugten Bedingungen erfüllt, fügen Sie außerdem skip-check-pref-cond = true
hinzu (beachten Sie, dass die Dateien nach dem Herunterladen an derselben Stelle verbleiben müssen).
Richten Sie abschließend einen Cron-Job (oder eine geplante Aufgabe unter Windows) ein, um sldl regelmäßig mit der folgenden Option auszuführen:
sldl --profile wishlist
chmod +x publish.sh && sh publish.sh
aus. Entfernen Sie bei Intel-Macs das x64-Kommentar und kommentieren Sie den arm64-Abschnitt in Publish.sh.--no-progress
. Aus diesem Repository kann ein Docker-Container zum Ausführen sldl
erstellt werden. Das Image unterstützt Linux x86/ARM.
So erstellen und starten Sie einen Container:
clone https://github.com/fiso64/slsk-batchdl
cd slsk-batchdl
docker compose up -d
exec
in den Container, um mit der Verwendung sldl
zu beginnen:
docker compose exec sldl sh
sldl --help
Der Compose-Stack mountet zwei Verzeichnisse relativ zum Speicherort docker-compose.yml
die für die Dateiverwaltung verwendet werden können:
/config
(unter ./config
auf dem Host) – legen Sie Ihre sldl.conf
-Konfiguration in diesem Verzeichnis ab und verwenden Sie dann sldl -c /config ...
um Ihre Konfiguration im Container zu verwenden/data
(unter ./data
auf dem Host) – als Download-Verzeichnis verwenden IE sldl -p /data ...
Wenn Sie Docker auf einem Linux-Host ausführen, sollten Sie user:group
des Benutzers angeben, der Eigentümer des Konfigurations- und Datenverzeichnisses auf dem Host ist, um Probleme mit Docker-Dateiberechtigungen zu vermeiden. Diese können über die Umgebungsvariablen PUID und PGID angegeben werden.
Um die UID und GID für den aktuellen Benutzer abzurufen, führen Sie diese Befehle von einem Terminal aus aus:
id -u
– gibt die UID ausid -g
– gibt die GID aus Ersetzen Sie diese durch die entsprechende Variable ( PUID
PGID
) in docker-compose.yml
.
Mit dem im Container integrierten Cron können ein oder mehrere sldl
-Befehle nach einem Zeitplan ausgeführt werden.
Um einen Zeitplan zu erstellen, erstellen Sie eine neue Datei auf dem Host ./config/crontabs/abc
und verwenden Sie sie mit der Standard-Crontab-Syntax.
Stellen Sie sicher, dass Sie den Container neu starten, nachdem Sie Änderungen an der Cron-Datei vorgenommen haben.
Beispiel => Führen Sie sldl
jeden Sonntag um 1 Uhr morgens aus und suchen Sie nach fehlenden Titeln in der angegebenen Spotify-Wiedergabeliste
# min hour day month weekday command
0 1 * * 0 sldl https://open.spotify.com/playlist/6sf1WR5grXGJ6dET -c /config -p /data --skip-existing --m3u-path /data/index.sldl"
crontab.guru könnte verwendet werden, um beim Planungsausdruck zu helfen.