Slskd+Plex download and import issue
Hey guys,
First of all, I'd like to express my gratitude for your effort, found your project on Reddit and happy I can try it out on my home stack. Thank you very much.
I faced some problem, which very likely can be my configuration issue or lack of system understanding. The problem: while using Slskd as the only downloader, the amount of the tracks downloaded is very short - 1-3, and they are not being imported into Plex even though I launch library rescan manually afterwards. However, the weekly playlist is eventually created, but only with the tracks I have in my music library already. What is weird is that if I enable Youtube downloader as an additional one, most (if not all) tracks are being downloaded, imported to Plex library via Various Artists and added into Weekly playlist.
My setup:
- synology dsm
- docker container
- lidarr
- slskd
- explo
- plex
Explo configuration (only the uncommented string from the default config file, stars hide my sensitive info): explo-config.txt Explo docker compose file: compose.yml
The log of the latest launch of Explo script with both Slskd and Youtube downloaders on: explo.csv. Some observation: in the very beginning of the file I see a bunch of 429 (too-many-requests) http responses from Slskd. My assumption is that it could be that the script is bypassing such responses and never getting back to them. The first valid response in the log "Hymns in Dissonance - Whitechapel" was added into Slskd, downloaded and imported into the /data/ folder successfully. However, in the Weekly playlist it is not present.
Hi!
Seems to be related with #79 Can you try pulling the newest explo container (released 4 days ago) and seeing if the issues persist?
Pardon, did not notice this closed issue. Of course, I will try it out today and let you know. Thx for quick response.
Okay, even though the container manager on DMS showed I am using the latest image, after cleaning and full rebuild the 429 error disappeared and Slskd downloader worked very well. The rest of the failed tracks were downloaded via Youtube. So, I'd say the issue with not working Slskd is fixed.
Still I am having the issue of importing slskd-downloaded tracks into Plex. I spent some time investigating, since it looks like my end issue and discovered that migrated tracks from slskd downloading folder are loosing all their permissions once their appeared in my Plex media folder /data/media/_explo. This does not happen with tracks, downloaded via YouTube. Could it be that the problem is in in the Explo scripts or I should continue searching at mine?
Explo tries to keep the same permissions when moving tracks, could you give an ls -ll output of one of those files?
Also, you can enable debugging to see if any issues appear during moving files, set LOG_LEVEL to DEBUG in .env
This logs any chmod or stat errors
I made a fresh launch this morning and watched closely how files are moving between the folders, for the better visibility I took one track:
- during the downloading process the file in my "incoming/slskd" folder had the following attributes
admin@SynologyNAS:/volume1/data/torrents/incoming/slskd/2025 The Overview$ ls -ll total 51056 -rwxrwxrwx+ 1 root root 52278461 Nov 20 08:26 '02 The Overview.flac'
- after completed downloading the file in my "completed/slskd" folder had the same attributes looks like:
admin@SynologyNAS:/volume1/data/torrents/completed/slskd/2025 The Overview$ ls -ll total 88348 -rwxrwxrwx+ 1 root root 90466630 Nov 20 08:28 '02 The Overview.flac'
- and the attributes are gone after transferring to my media folder. I attach all the files in the folder, so you can see that the two files, downloaded by Youtube downloader have correct permissions. "The Overview" is the last one in the list:
admin@SynologyNAS:/volume1/data/media/music/_explo/Weekly-Exploration-2025-Week47$ ls -ll total 1301148 ---------- 1 root root 48629523 Nov 20 08:39 Dangerous-Sleep_Token.flac ---------- 1 root root 30287598 Nov 20 08:39 Drone_Corpse_Aviator-Archspire.flac ---------- 1 root root 36389917 Nov 20 08:38 Eye_of_Mars-Imperial_Triumphant.flac ---------- 1 root root 35887121 Nov 20 08:39 Fata_Morgana-Spiritbox.flac -rwxrwxrwx+ 1 root root 2121916 Nov 20 08:40 From_the_Dust_of_This_Planet-Car_Bomb.opus ---------- 1 root root 33475358 Nov 20 08:39 Goliath-Karnivool.flac ---------- 1 root root 158400113 Nov 20 08:39 Is_It_Your_God-Anciients.flac -rwxrwxrwx+ 1 root root 0 Nov 20 08:40 Keys_to_the_Palace-Dessiderium.opus.tmp ---------- 1 root root 42628942 Nov 20 08:39 Kingdom-Devin_Townsend_Project.flac ---------- 1 root root 37803548 Nov 20 08:39 Language_I_Intuition-The_Contortionist.flac ---------- 1 root root 90466630 Nov 20 08:39 The_Overview-Steven_Wilson.flac
Log file with DEBUG enabled has the following entries, related to "The Overview" file:
| date | stream | content |
|---|---|---|
| 2025/11/20 08:42:35 | stderr | 2025/11/20 08:42:35 DEBUG failed to find 'The Overview' by 'Steven Wilson' in 'The Overview' |
| 2025/11/20 08:39:02 | stderr | 2025/11/20 08:39:02 INFO [monitor] file downloaded successfully service=slskd file="@@yppcw\Music\Steven Wilson\2025 The Overview\02 The Overview.flac" |
| 2025/11/20 08:25:14 | stderr | 2025/11/20 08:25:14 DEBUG [slskd] (2/5) Searching for The Overview - Steven Wilson |
| 2025/11/20 08:24:59 | stderr | 2025/11/20 08:24:59 DEBUG [slskd] (1/5) Searching for The Overview - Steven Wilson |
| 2025/11/20 08:24:44 | stderr | 2025/11/20 08:24:44 DEBUG [slskd] (0/5) Searching for The Overview - Steven Wilson |
| 2025/11/20 08:24:44 | stderr | 2025/11/20 08:24:44 INFO initiating search track="The Overview - Steven Wilson" |
| 2025/11/20 08:21:37 | stderr | 2025/11/20 08:21:37 DEBUG failed to find 'The Overview' by 'Steven Wilson' in 'The Overview' |
Okay, I had a free morning so did some additional experiments. I compiled a custom image from your sources and put some extra debugs into downloader.go "MoveDownload" function. It turned out that "info, err := os.Stat(srcFile)" has "0" in "info.Mode().Perm()" field. As a result, the following "os.Chmod" clears out all the permissions from the files. I commented these lines and it fixed my issue.
if err = os.Chmod(dstFile, info.Mode()); err != nil {
return fmt.Errorf("chmod failed: %s", err.Error())
}
My best guess, is that my NAS dsm on Synology controls permissions with ACL, which can come into possible conflicts with chmod (I have almost zero knowledge about this). I have no idea which way would be the right one to fix it, or it is purely my setup problem. So, hope it somehow helps you to make your decision as the project owner)
I think you're right, found a related forum topic on this issue. I will add the ability to copy permssions behind an env variable, so those who use a Synology NAS can disable it in the future.