أداة تنزيل تلقائية لـ Soulseek تم تصميمها باستخدام Soulseek.NET. يقبل ملفات CSV بالإضافة إلى عناوين url لـ Spotify وYouTube. يدعم قائمة التشغيل وتنزيل الألبومات؛ يختار أفضل الملفات وفقًا لشروط الملفات والاستدلالات التي قام المستخدم بتكوينها.
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
--user Soulseek username
--pass Soulseek password
خيارات عامة
Max concurrent downloads (default: 2)
--write-playlist Create an m3u playlist file in the output directory
--playlist-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 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 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 for incoming connections (default: 49998)
--on-complete 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:' will only run the command if the file is
downloaded successfully. Prepend 's:' to use the system
shell to execute the command.
--print
خيارات البحث
Number of fails to downrank a user's shares (default: 1)
--fails-to-ignore 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 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 Max search time in ms (default: 6000)
--max-stale-time Max download time without progress in ms (default: 50000)
--searches-per-time Max searches per time interval. Higher values may cause
30-minute bans, see --help "search". (default: 34)
--searches-renew-time Controls how often available searches are replenished.
See --help "search". (default: 220)" style=";text-align:right;direction:rtl">
--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 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 Number of fails to downrank a user's shares (default: 1)
--fails-to-ignore 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 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 Max search time in ms (default: 6000)
--max-stale-time Max download time without progress in ms (default: 50000)
--searches-per-time Max searches per time interval. Higher values may cause
30-minute bans, see --help "search". (default: 34)
--searches-renew-time Controls how often available searches are replenished.
See --help "search". (default: 220)
--youtube-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.
خيارات ملف CSV
--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 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 Accepted file format(s), comma-separated, without periods
--length-tol Length tolerance in seconds
--min-bitrate Minimum file bitrate
--max-bitrate Maximum file bitrate
--min-samplerate Minimum file sample rate
--max-samplerate Maximum file sample rate
--min-bitdepth Minimum bit depth
--max-bitdepth 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 Comma-separated list of users to ignore
--pref-format Preferred file format(s), comma-separated (default: mp3)
--pref-length-tol Preferred length tolerance in seconds (default: 3)
--pref-min-bitrate Preferred minimum bitrate (default: 200)
--pref-max-bitrate Preferred maximum bitrate (default: 2500)
--pref-min-samplerate Preferred minimum sample rate
--pref-max-samplerate Preferred maximum sample rate (default: 48000)
--pref-min-bitdepth Preferred minimum bit depth
--pref-max-bitdepth Preferred maximum bit depth
--pref-banned-users 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 Specify the exact number of tracks in the album. Add a + or
- for inequalities, e.g '5+' for five or more tracks.
--album-art
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 Max length tolerance in seconds to consider two tracks or
albums equal. (Default: 3)
--min-shares-aggregate 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
ملحوظات
يتم أيضًا قبول الاختصارات المكونة من كلمتين و- ثلاث كلمات، على سبيل المثال --twf. إذا كان الخيار يحتوي على كلمة "max"، فيجب أن يكون الحرف m كبيرًا. يجب التعامل مع 'معدل البت' و'sameplerate' و'عمق البت' على أنها كلمتين منفصلتين، على سبيل المثال --Mbr لـ --max-bitrate.
يمكن تعطيل العلامات بشكل صريح عن طريق تعيينها على "خطأ"، على سبيل المثال "--interactive false"
أنواع الإدخال
عادةً ما يتم تحديد نوع الإدخال تلقائيًا. لفرض نوع إدخال محدد، قم بتعيين --input-type [spotify|youtube|csv|string|bandcamp|list]. تتوفر أنواع الإدخال التالية:
ملف CSV
المسار إلى ملف CSV محلي: استخدم ملف CSV يحتوي على معلومات المسار للأغاني المراد تنزيلها. يجب أن تكون أسماء الأعمدة هي الفنان، والعنوان، والألبوم، والطول، على الرغم من أنه يتم عادةً اكتشاف الأسماء البديلة أيضًا. مطلوب فقط عمود العنوان أو الألبوم، ولكن المعلومات الإضافية قد تؤدي إلى تحسين ترتيب نتائج البحث. سيتم التعامل مع كل صف لا يحتوي على نص عمود عنوان على أنه تنزيل ألبوم.
يوتيوب
عنوان URL لقائمة التشغيل: تنزيل الأغاني من قائمة تشغيل على YouTube. لا تقوم الطريقة الافتراضية لاسترداد قوائم التشغيل دائمًا بإرجاع جميع مقاطع الفيديو، خاصة تلك غير المتوفرة. للحصول على جميع عناوين مقاطع الفيديو، يمكنك استخدام واجهة برمجة التطبيقات الرسمية من خلال توفير مفتاح مع --youtube-key. احصل عليه هنا https://console.cloud.google.com. أنشئ مشروعًا جديدًا، وانقر على "تمكين واجهة برمجة التطبيقات" (Enable Api) وابحث عن "بيانات youtube"، ثم اتبع المطالبات.
سبوتيفي
عنوان url لقائمة التشغيل/الألبوم أو "إعجابات Spotify": قم بتنزيل قائمة تشغيل أو ألبوم أو أغانيك المفضلة على Spotify. مطلوبة بيانات الاعتماد عند تنزيل قائمة تشغيل خاصة أو الموسيقى المفضلة.
استخدام بيانات الاعتماد
انقر للتوسيع
أنشئ تطبيق Spotify على https://developer.spotify.com/dashboard/applications باستخدام عنوان URL لإعادة التوجيه http://localhost:48721/callback. احصل على معرف التطبيق والسر من لوحة معلومات التطبيق التي تم إنشاؤها.
ابدأ sldl باستخدام بيانات الاعتماد التي تم الحصول عليها والإجراء المعتمد لتشغيل تدفق تسجيل الدخول إلى تطبيق Spotify:
سيحاول sldl فتح المتصفح تلقائيًا ولكنه سيعود لتسجيل عنوان URL لتدفق تسجيل الدخول للإخراج. بعد اكتمال تدفق تسجيل الدخول، سيقوم sldl بإخراج رمز مميز وتحديث الرمز المميز وإنهاء تشغيل الأمر الحالي.
لتخطي طلب تدفق تسجيل الدخول في كل مرة يتم فيها استخدام sldl، يمكن توفير الرمز المميز ورمز التحديث إلى sldl (تلميح: قم بتخزين هذه المعلومات في ملف التكوين لجعل الأوامر أقل تفصيلاً):
الوصول إلى رمز Spotify صالح لمدة ساعة واحدة فقط. سيعمل تحديث Spotify على تمكين sldl من تجديد الوصول في كل مرة يتم تشغيله (ويمكن استخدامه دون تضمين رمز Spotify)
باندكامب
عنوان URL الخاص بـ bandcamp: قم بتنزيل مقطع صوتي واحد أو ألبوم أو ألبومات الفنان بالكامل. لاستخراج اسم الفنان واسم الألبوم والمجموعات --album-track-count="n+"، حيث n هو عدد المسارات المرئية على صفحة bandcamp.
سلسلة البحث
اسم المسار أو الألبوم أو الفنان المطلوب البحث عنه: يمكن أن يكون إما أي سلسلة بحث نموذجية (مثل ما ستدخله في شريط بحث Soulseek)، أو قائمة خصائص مفصولة بفواصل مثل 'title=Song Name, Artist= اسم الفنان الطول=215'.
يتم قبول الخصائص التالية:
title
artist
album
length (in seconds)
artist-maybe-wrong
album-track-count
أمثلة على المدخلات وتفسيراتها:
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 |
قائمة
مسار إلى ملف نصي حيث يحتوي كل سطر على النموذج التالي:
حيث يشير "بعض الإدخال" إلى أي من أنواع الإدخال المذكورة أعلاه. يمكن حذف علامات الاقتباس إذا كان الحقل لا يحتوي على مسافات. تتم إضافة حقول الشرط أعلى الشروط التي تم تكوينها ويمكن حذفها أيضًا. يجب تنشيط إدخال القائمة يدويًا باستخدام --input-type=list. كما أنه يقبل اختصارًا لتنزيلات الألبوم: a:"Artist - Album" . لاحظ أن a: يجب أن يظهر خارج علامتي الاقتباس.
أوضاع التنزيل
طبيعي
الافتراضي. يقوم بتنزيل ملف واحد لكل إدخال إدخال.
الألبوم
سيبحث sldl عن الألبوم ويقوم بتنزيل مجلد كامل بما في ذلك الملفات غير الصوتية. يتم تنشيطه عندما يكون الإدخال عبارة عن رابط إلى ألبوم Spotify أو Bandcamp، أو عندما لا تحتوي سلسلة الإدخال أو صف CSV على عنوان مسار، أو عندما يتم تمكين -a/--album.
إجمالي
باستخدام -g/--aggregate، يقوم sldl بإجراء بحث عادي عن الإدخال ثم يحاول تجميع النتائج في أغانٍ مختلفة وتنزيل واحدة من كل نوع، بدءًا من تلك التي يشاركها معظم المستخدمين. لاحظ أن --min-shares-aggregate هو 2 افتراضيًا، مما يعني أنه سيتم تجاهل الأغاني التي شاركها مستخدم واحد فقط.
مجمع الألبوم
يتم تنشيطه عند تمكين كل من --album و --aggregate. سيقوم sldl بتجميع المشاركات وتنزيل واحد من كل ألبوم مميز، بدءًا من الألبوم الذي شاركه معظم المستخدمين. يوصى بإقران هذا بـ --interactive. لاحظ أن --min-shares-aggregate هو 2 افتراضيًا، مما يعني أنه سيتم تجاهل الألبومات التي شاركها مستخدم واحد فقط.
البحث
استعلام البحث
يتم تحديد استعلام البحث على النحو التالي:
لتنزيل الألبوم: إذا كان حقل الألبوم غير فارغ، فابحث عن "ألبوم الفنان". بخلاف ذلك، ابحث عن "عنوان الفنان"
بالنسبة لجميع أنواع التنزيل الأخرى: إذا كان حقل العنوان غير فارغ، فابحث عن "عنوان الفنان". بخلاف ذلك، ابحث عن "ألبوم الفنان"
حدود معدل Soulseek
سيحظرك الخادم لمدة 30 دقيقة إذا تم إجراء عدد كبير جدًا من عمليات البحث خلال فترة زمنية قصيرة. يحتوي البرنامج على محدد بحث يمكن ضبطه باستخدام --searches-per-time و --searches-renew-time (عند الوصول إلى الحد الأقصى، ستكون حالة التنزيلات "في انتظار"). بشكل افتراضي، تم تكوينه للسماح بما يصل إلى 34 عملية بحث كل 220 ثانية. تم تحديد القيم الافتراضية من خلال التجربة، لذا قد تكون غير صحيحة.
تسريع الأمور
ستجعل الخيارات التالية عملية البحث أسرع، ولكنها قد تقلل من جودة نتائج البحث أو تسبب عدم الاستقرار:
- يتخطى البحث السريع الانتظار حتى اكتمال البحث ويتم تنزيله بمجرد العثور على ملف مطابق للشروط المفضلة
--التنزيلات المتزامنة - اضبطها على 4 أو أكثر
--max-stale-time يتم ضبطه على 50 ثانية افتراضيًا، لذلك سينتظر لفترة طويلة قبل التخلي عن الملف
- عمليات البحث في كل مرة - زيادة خطر الحظر.
شروط الملف
لن يتم تنزيل الملفات التي لا تستوفي الشروط المطلوبة. سيتم تفضيل الملفات التي تستوفي الشروط المسبقة؛ سيؤدي الإعداد --pref-format "flac,wav" إلى تنزيل الملفات غير المفقودة إذا كانت متوفرة، وتنزيل الملفات المفقودة فقط إذا لم يكن هناك شيء آخر.
لا توجد شروط مطلوبة افتراضية. الشروط المفضلة الافتراضية هي:
وبالتالي، سيفضل sldl ملفات mp3 ذات معدل البت بين 200 و2500 كيلوبت في الثانية، والتي يختلف طولها عن الطول المقدم بما لا يزيد عن 3 ثوانٍ. سيفضل أيضًا الملفات التي تحتوي مساراتها على العنوان والألبوم المقدمين (تجاهل حالة الأحرف، والمحددة بأحرف حدودية) والتي ليس طولها فارغًا. لا يوصى بتغيير الشروط الثلاثة الأخيرة المفضلة. لاحظ أن الملفات التي تستوفي مجموعة فرعية من الشروط المفضلة ستظل مفضلة على الملفات التي لا تستوفي أي شرط، ولكن بعض الشروط لها الأسبقية على غيرها. على سبيل المثال، سيتم دائمًا تفضيل الملف الذي يلبي فقط العنوان الصارم (في حالة تمكينه) على الملف الذي يفي بشرط التنسيق فقط. قم بتشغيل --print "results-full" للكشف عن منطق الفرز.
يمكن أيضًا توفير الشروط كسلسلة مفصولة بفواصل منقوطة مع --cond و --pref، على سبيل المثال --cond "br >= 320; format = mp3,ogg; sr < 96000".
تصفية النتائج غير ذات الصلة
ستقوم الخيارات --strict-title و --strict-artist و --strict-album بتصفية أي ملف لا يحتوي على العنوان/الفنان/الألبوم في اسم الملف (تجاهل حالة الأحرف، محاطًا بأحرف حدودية). هناك طريقة أخرى لمنع التنزيلات الخاطئة وهي ضبط --length-tol على 3 أو أقل لجعله يتجاهل أي أغانٍ تختلف عن الإدخال بأكثر من 3 ثوانٍ. ومع ذلك، يتم تمكين جميع الخيارات الأربعة بالفعل كشروط "مفضلة" افتراضيًا، مما يعني أنه لن يتم تنزيل هذه الملفات إلا كملاذ أخير على أي حال. ومن ثم، يوصى بتمكينها فقط إذا كنت بحاجة إلى تقليل التنزيلات الزائفة قدر الإمكان، أو في حالات خاصة مثل المقاطع الصوتية أو الألبومات التي يتكون اسمها من حرف واحد أو حرفين فقط.
ملاحظة هامة
قد تكون بعض المعلومات غير متوفرة اعتمادًا على العميل الذي يستخدمه النظير. على سبيل المثال، لا يشارك عميل Soulseek القياسي في معدل البت للملف. إذا تم تعيين (على سبيل المثال) --min-bitrate، فسيظل sldl يقبل أي ملف بمعدل بت غير معروف. يمكنك تكوينه لرفض جميع الملفات التي تكون فيها واحدة أو أكثر من الخصائص المحددة فارغة (غير معروفة) عن طريق تمكين --strict-conditions. ونتيجة لذلك، إذا تم تعيين --min-bitrate أيضًا، فسيتم تجاهل أي ملفات يشاركها المستخدمون مع العميل الافتراضي. لاحظ أيضًا أن الشروط الافتراضية المفضلة ستؤثر بالفعل على التصنيف باستخدام هذا الخيار نظرًا لعمليات التحقق من معدل البت وأخذ العينات.
تنسيق الاسم
سيتم استبدال المتغيرات الموجودة في {} بقيمة علامة الملف المقابلة. يدعم تنسيق الاسم الدلائل الفرعية بالإضافة إلى التعبيرات الشرطية مثل {tag1|tag2} - إذا كان tag1 فارغًا، استخدم tag2. يتم تجاهل القيم الحرفية للسلسلة المحاطة بين قوسين في عملية التحقق من القيمة الخالية.
أمثلة:
"{فنان} - {عنوان}" قم دائمًا بتسميته "الفنان - العنوان". نظرًا لأن بعض الملفات الموجودة على Soulseek غير مميزة، يُفضل بشكل عام ما يلي:
"{الفنان ( - ) العنوان | اسم الملف}" إذا لم يكن الفنان والعنوان فارغين، فقم بتسميته "الفنان - العنوان"، وإلا استخدم اسم الملف الأصلي.
"{albumartist(/)album(/)track(.)title|(missing-tags/)foldername(/)filename}" قم بفرز الملفات في مجلدات الفنان/الألبوم إذا كانت جميع العلامات موجودة، وإلا ضعها في مجلد "العلامات المفقودة".
المتغيرات المتاحة:
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 عن الملف المسمى sldl.conf في المواقع التالية:
سيتم تجاهل الأسطر التي تبدأ بالهاشتاج (#). يتم توسيع المدات الموجودة في المسارات كدليل المستخدم.
ملفات تعريف التكوين:
الملفات الشخصية مدعومة:
[lossless]
pref-format = flac,wav
لتنشيط ملف التعريف أعلاه، قم بتشغيل --profile "lossless". لسرد كافة الملفات الشخصية المتاحة، قم بتشغيل --profile "help". يمكن تنشيط الملفات الشخصية تلقائيًا بناءً على بعض الشروط البسيطة:
[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
العوامل التالية مدعومة للاستخدام في ملف التعريف: &&، ||، ==، !=، !{bool}. المتغيرات التالية متوفرة:
قم بتنزيل جميع ألبومات الفنان الموجود على Soulseek:
sldl "artist=MC MENTAL" -a -g -t
مثال متقدم: تنزيل قائمة الرغبات تلقائيًا
قم بإنشاء ملف باسم wishlist.txt ، وأضف بعض العناصر كما هو مفصل في أنواع الإدخال: القائمة:
" Artist - My Favorite Song "
a: " Artist - Some Album, album-track-count=5 "" format=flac "
أضف ملفًا شخصيًا إلى sldl.conf الخاص بك:
[wishlist]
input = ~/sldl/wishlist.txt
input-type = list
index-path = ~/sldl/wishlist-index.sldl
سيؤدي هذا إلى إنشاء ملف فهرس عالمي wishlist-index.sldl والذي سيتم فحصه في كل مرة يتم فيها تشغيل sldl لتخطي عناصر قائمة الرغبات التي تم تنزيلها بالفعل. إذا كنت تريد مواصلة البحث حتى يتم تنزيل إصدار يلبي الشروط المفضلة، فأضف أيضًا skip-check-pref-cond = true (لاحظ أن هذا يتطلب بقاء الملفات في نفس المكان بعد تنزيلها). أخيرًا، قم بإعداد مهمة cron (أو مهمة مجدولة على نظام التشغيل Windows) لتشغيل sldl بشكل دوري باستخدام الخيار التالي:
sldl --profile wishlist
ملحوظات
بالنسبة لإصدارات نظام التشغيل macOS، يمكنك استخدام Publish.sh لإنشاء التطبيق. قم بتنزيل dotnet من https://dotnet.microsoft.com/en-us/download/dotnet/6.0، ثم قم بتشغيل chmod +x publish.sh && sh publish.sh . بالنسبة إلى أجهزة Intel Mac، قم بإلغاء التعليق على x64 والتعليق على قسم Arm64 في Publish.sh.
قد تظهر المخرجات المطبوعة مكررة أو متداخلة أو غير محدثة في بعض التكوينات (محطة Windows الجديدة، git bash). استخدم محطة أخرى أو --no-progress في حالة حدوث مشكلات.
عامل ميناء
يمكن إنشاء حاوية عامل إرساء لتشغيل sldl من هذا المستودع. الصورة تدعم نظام التشغيل Linux x86/ARM.
لبناء وبدء الحاوية:
clone https://github.com/fiso64/slsk-batchdl
cd slsk-batchdl
docker compose up -d
exec في الحاوية لبدء استخدام sldl :
docker compose exec sldl sh
sldl --help
يقوم مكدس الإنشاء بتركيب دليلين مرتبطين بالمكان الذي يوجد به docker-compose.yml والذي يمكن استخدامه لإدارة الملفات:
/config (في ./config on host) - ضع تكوين sldl.conf في هذا الدليل ثم استخدم sldl -c /config ... لاستخدام التكوين الخاص بك في الحاوية
/data (في ./data on host) - استخدم كدليل التنزيل IE sldl -p /data ...
أذونات الملف
إذا كنت تقوم بتشغيل Docker على مضيف Linux، فيجب عليك تحديد أذونات user:group للمستخدم الذي يملك دليل التكوين والبيانات على المضيف لتجنب مشاكل أذونات ملف الإرساء. ويمكن تحديد هذه باستخدام المتغيرات البيئية PUID و PGID .
للحصول على UID وGID للمستخدم الحالي، قم بتشغيل هذه الأوامر من الوحدة الطرفية:
id -u - يطبع UID
id -g - يطبع GID
استبدلها بالمتغير المقابل ( PUIDPGID ) في docker-compose.yml .
كرون
يمكن تشغيل واحد أو أكثر من أوامر sldl وفقًا لجدول زمني باستخدام cron المدمج في الحاوية.
لإنشاء جدول، قم بإنشاء ملف جديد على المضيف ./config/crontabs/abc واستخدمه مع بناء جملة crontab القياسي.
تأكد من إعادة تشغيل الحاوية بعد إجراء أي تغييرات على ملف cron.
مثال => قم بتشغيل sldl كل يوم أحد الساعة 1 صباحًا، وابحث عن المقاطع الصوتية المفقودة من قائمة تشغيل Spotify المحددة