So I’ve got jellyfin all set up, but I’m having some issues with files downloading from qbittorrent and Knowing exactly how and when they get moved over, either the sonar or jellyfin repository, whichever is the final destination. This is important because my torrenting drive is separate from my media drive. I have noticed some shows and files staying on my torrenting drive while others go over to the media drive. And I’m and to figure out where the issue might be that’s causing this, I think I need a refresher on exactly how and when these files are supposed to be moved over. Since I can’t find any sort of documentation inside the apps.
Can anybody explain this to me like super simply? I just took an edible and it’s starting to kick in, but I still want to figure this out. Thanks y’all!
I just took an edible and it’s starting to kick in, but I still want to figure this out.
Getting stoned and getting the magic rocks in my homelab to do my bidding is one of my favourite ways to use up my time on this Earth.
Sonarr gets torrents and sends to qbittorrent, qbittorrent downloads the torrent and puts the downloaded file somewhere, sonarr then picks up that file and moves it to its final destination where jellyfin expects it
It’s important to have seperate directories for unfinished torrent downloads and complete ones, and only have sonarr pick up from the completed one
It’s important to have seperate directories for unfinished torrent downloads and complete ones, and only have sonarr pick up from the completed one
Back when I used Torrents instead of Usenet for sonarr, I had only the one folder, since Plex would generally pick up the library changes automatically anyway. I’d assume that Jellyfin is similar, although I don’t use it enough to know for sure. These days I use only Usenet for sonarr/radarr since I’m paying for Usenet and it’s excellent for automation/new content, and SABnzbd provides both incomplete and complete folders by default anyway.
I also only use Usenet, so yeah, might not be the case for torrents
And it’s good to use hard links.
Op cant because he’s using 2 different filesystems
I followed this https://trash-guides.info/
Helped a ton, go with atomic move if all possible
I’ve literally just set this all up and it’s working now after some tinkering, so here’s what I found out. Assuming you have correctly configured the sonarr/qbitorrent api keys and credentials:
When you make a TV show request in Sonarr, it will automatically add the torrent to your download client (e.g qbitorrent)
qbitorrent will then download the file to wherever you specify (e.g. /torrents/completed)
periodically, Sonarr will scan that /torrents/completed folder, and if it finds the tagged TV show, it will either copy or hard link that video file to your specified media folder (e.g. /media/tv-shows)
JellyFin will do the same, periodically scanning your media folders to see if there are any updates
EDIT: also if you are using docker containers, make sure that Sonars native /downloads folder is pointed at the same external folder your qBitTorrent is downloading files in
I think Sonarr uses qBittorrent’s (or other supported torrent client) API for checking the progress, instead of periodic scans. Everything else is solid.
Also of note - if you’re using docker (and Linux), make sure the user is/group id match across everything to eliminate any permissions issues.
I’m also trying to figure out a setup using Docker. What’s the recommended way of connecting the container to a VPN? Ideally I want to bind the qbittorrent container to a VPN while the rest of the machine is not connected to the VPN.
literally was going through the exact same thoughts as you a couple a weeks ago, tried so many different configurations but the one i found that worked was actually kinda simple
basically they way i did was to run a gluetun docker container, and then in the environment variables pass in the the fact i wanted this to use the WireGuard VPN manager, and then i passed in my Proton VPN wireguard api key (you’ll need a subscription for this)
then once that gluetun container is up and running, you literally just add “network_mode: service:gluetun” to any other containers that you want to use this VPN
can you can even test its working by sending a curl command to an ip checking site from within those containers connected to gluetun
and then also try shutting down that gluetun vpn, and see if you other services (e.g. qbitorrent, still work)
I use Glutun for this
You didn’t specify but this sounds like an issue where you are confusing sonarr and radarr where only one is configured “properly”.
You’re right, radarr is the one that handles moving stuff around isn’t it? Tbh I’ve got massive add so I get super into these projects and the setup, but when it comes to maintaining, I’ve completely forgotten how everything works.
Would you happen to know how I can fix this through radarr? I wouldn’t be totally opposed to completely redoing the entire workflow if that’s what it takes
Sonarr is TV and radarr is movies.
Oh yeah no I’m taking about sonarr then
You would need to post your config.
First guess is read/write access. Either sonarr can’t read the download directory, or it can’t write to the media directory.
If the torrents are still seeding when the import in arrs happens, it would copy the file(s) to your media folder so you’d have two copies now. If the torrent is done seeding and, I think if you have completed download handling enabled, it’ll do a move instead so you’d end up with only one copy.
Ideally though you want a hardlink compatible setup but from what you said you do not.
Jellyfin just monitors your media folder which is managed by the arrs.
Is there a way to use symlinks instead? I’d think it would be possible, even with Docker - it would just require the torrent directory to be mounted read-only in the same location in every Docker container that had symlinks to files on it.
Wouldn’t symlinks essentially “copy” the file? I need it to be deleted, so it doesn’t fill up the drive
No. Symlinks and hardlinks are two approaches to creating a “pointer to a file.” They are quite different in implementation, but at the high level:
- Symlinks can point to other filesystems, hardlinks only work on the same filesystem.
- You can delete the target of a symlink (or even create one that points at nothing), but a hardlink always points to a real file.
In both cases, the only additional data used is the metadata used for the link itself. The contents of the file on disk are not copied.
That’s not something they natively support, it’s hard links or a copy.
I believe it’s actual an interaction between Sonarr and qbittorrent and jellyfin isn’t involved. Qbittorrent should have a setting for share ratio of when it’s marked “complete”. Like 1:1 download vs upload ratio. Then in Sonarr under the qbittorrent download client you check the box for remove completed downloads from the client. So popular together will reach whatever ratio you have set right away and be removed but others will take a long time or never hit that ratio. Maybe, could have nothing to do with that and I have my concept wrong.
Uh oh, if that’s the case I’m in trouble, see, I have a blanket “72 hours” seeding ratio set up in qbit, specifically for a private tracker I’m using, but the shows I download don’t necessarily need that requirement.
I may have to find a way to only send seeding goals for specific torrents if seeding is causing it to not be transferred over
You can set individual seed time/ratios in the indexer settings for each tracker in sonarr and radarr.
If you’re using docker it’s easy to set up a second qbittorrent on a different port to meet different needs.
But also, if you are just seeing the files remaining on your torrenting drive but the torrents aren’t listed in qbit anymore make sure to ignore me altogether!
So, sonarr starts the download in qbittorrent, monitors it, and imports it in its Library once it’s completed. First of all check inside Sonarr whether it has imported the file or not, it could be that it was imported but not moved.
Do you have sonarr set to copy or hard link on import
Copy will fuck over your ability to seed, hard link will result in the files staying on your torrenting drive
You can’t hard link across drives, so it’s not possible to use hard links if the OP wants torrents and media to be on two separate drives.
Oh right duh. Disregard what I said, obviously. Been ages since I’ve used a setup that’s not one big pool
U can always just use the media stack docker image it practically does everything for you