sureshfizzy / CineSync

CineSync is a Python & Bash based library management tool designed to organize debrid & local libraries without the support of Sonarr & Radarr
38 stars 5 forks source link

Absolute Symlinks vs Relative #9

Closed kvnkim closed 1 week ago

kvnkim commented 1 month ago

i discovered while generating my symlinks that CineSync creates absolute path symlinks vs relative path symlinks and my plex library doesn't detect media when symlinks are absolute path

current mount path is /home/username/mnt/zurg/shows, configured CineSync to generate symlinks in:

/home/username/media/zurg/shows (Where I have my Plex library media for Series configured)

e.g:

absolute

1883.S01E01.1883.2160p.WEB-DL.DDP5.1.H.265-NTb.mkv -> /home/username/mnt/zurg/shows/1883.S01.2160p.WEB-DL.DDP5.1.H.265-NTb/1883.S01E01.1883.2160p.WEB-DL.DDP5.1.H.265-NTb.mkv

vs

relative:

1883.S01E01.1883.2160p.WEB-DL.DDP5.1.H.265-NTb.mkv -> ../../../../../mnt/zurg/shows/1883.S01.2160p.WEB-DL.DDP5.1.H.265-NTb/1883.S01E01.1883.2160p.WEB-DL.DDP5.1.H.265-NTb.mkv

so i've ran this simple bash script to fix all my links to relative path for now.

Can we get an env option to create relative symlinks instead?

I'm not sure if this is just me, but i've always had to use relative symlinks for Plex on Linux

sureshfizzy commented 1 month ago

yes, that's possible, but it is strange that you were able to use relative path on plex and not absolute. Are you using plex on docker or linux machine ?

kvnkim commented 1 month ago

i currently rent a shared slot on a seedbox, they're using Ubuntu Linux. However; I believe the way seedbox hosts run their Plex instances is that they're dockerized.

So both, in this case? if that makes any sense.

sureshfizzy commented 1 month ago

i currently rent a shared slot on a seedbox, they're using Ubuntu Linux. However; I believe the way seedbox hosts run their Plex instances is that they're dockerized.

So both, in this case? if that makes any sense.

Are you able to play the files after setting the symlink relative? As far as I know, relative paths can sometimes be seen as broken symlinks in Linux, making the file unplayable. That's why i moved with absolute path.

Edit: After generating a relative path, try reading the constructed symlink to see if it returns the correct path.

kvnkim commented 1 month ago

Yes, Plex finally scans the file and plays it back correctly when it's changed to a relative symlink. I can verify that it's not broken. Absolute paths don't work for me, and has never worked in my Plex (Linux) environment since I've been running a server. I'm gonna assume Infuse works fine with Absolute symlinks

sureshfizzy commented 1 month ago

Yes, Plex finally scans the file and plays it back correctly when it's changed to a relative symlink. I can verify that it's not broken. Absolute paths don't work for me, and has never worked in my Plex (Linux) environment since I've been running a server. I'm gonna assume Infuse works fine with Absolute symlinks

I tried to reproduce the issue on docker, but I'm unable to do it. Absolute paths are working fine here, Am I missing anything ?

Screenshot_2024-07-08-16-38-58-91_40deb401b9ffe8e1df2f1cc5ba480b12 Screenshot_2024-07-08-16-39-26-88_40deb401b9ffe8e1df2f1cc5ba480b12

kvnkim commented 1 month ago

Ok I think I can clarify this situation that I'm running into with relative vs absolute links not working. I've done a little bit more research on how my host sets up its PMS.

Shared hosting provider runs Plex via containers in Docker for each user.

Plex Media Server paths for my home folder is seen as "/data/media/zurg/shows", I can not add /home/username/media/zurg/shows directly, probably due to security restrictions.

It is unable to follow absolute paths since it's restricted to seeing only "/data" from within Plex, I believe this is the way my home directory is configured in their Plex container, going to /data is equivalent of /home/username/

This is the reason why I'm unable to use absolute symlinks.

This is my second Plex server that I've rented and can confirm they're set up similarly when you're instructed to add libraries into plex. I would say this is isolated to a special docker/shared server setup.

sureshfizzy commented 1 month ago

Ok I think I can clarify this situation that I'm running into with relative vs absolute links not working. I've done a little bit more research on how my host sets up its PMS.

Shared hosting provider runs Plex via containers in Docker for each user.

Plex Media Server paths for my home folder is seen as "/data/media/zurg/shows", I can not add /home/username/media/zurg/shows directly, probably due to security restrictions.

It is unable to follow absolute paths since it's restricted to seeing only "/data" from within Plex, I believe this is the way my home directory is configured in their Plex container, going to /data is equivalent of /home/username/

This is the reason why I'm unable to use absolute symlinks.

This is my second Plex server that I've rented and can confirm they're set up similarly when you're instructed to add libraries into plex. I would say this is isolated to a special docker/shared server setup.

Alright, it makes sense now. I'll add a seperate env variable for this, so that when enabled it will make a relative symlink.

sureshfizzy commented 1 month ago

@kvnkim clone the symlink branch and enable Relative symlinks flag inside env and check how it goes.

https://github.com/sureshfizzy/CineSync/tree/symlinks

DarkseidAM commented 1 month ago

Hey, this works with docker, absolute symlinks weren't working

sureshfizzy commented 1 month ago

Hey, this works with docker, absolute symlinks weren't working

Docker support will be added in future, and symlinks are working good so far on windows and Linux.