Jellyfin Forum
Is it possible to have separate library based on language? - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: General Questions (https://forum.jellyfin.org/f-general-questions)
+--- Thread: Is it possible to have separate library based on language? (/t-is-it-possible-to-have-separate-library-based-on-language)

Pages: 1 2


RE: Is it possible to have separate library based on language? - fedonr - 2024-06-22

(2024-06-21, 08:57 PM)TheDreadPirate Wrote: In your source folder each movie needs to be in its own folder, which is what our documentation states is the recommended folder and file structure anyway.

https://jellyfin.org/docs/general/server/media/movies/

Once you put each movie in its own folder, modify your script to symlink the folder instead of the file.

As I stated, Jellyfin will follow symlinks for folders and will ignore symlinks for files.

Hello, sorry I missed out on it yesterday, as I didn't check the playback. I did check the permissions and everything is good. Also Jellyfin detects everything correctly when it comes to Symlinks in terms of library update and metadata but the playback doesn't work I get the below error, while the symlinks does play via filemanager

Code:
{"Protocol":0,"Id":"e81a7e087fd2d744de287c30f8f7b7f8","Path":"/data/regmov/Chal Mann Jeetva Jaiye 2 (2023)/Chal Mann Jeetva Jaiye 2 (2023) WEBDL-1080p.mp4","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mp4","Size":null,"Name":"Chal Mann Jeetva Jaiye 2 (2023) WEBDL-1080p","IsRemote":false,"ETag":"543b6ca4c9f21c87d81daf7a932499c0","RunTimeTicks":null,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[],"MediaAttachments":[],"Formats":[],"Bitrate":null,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":0,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -f mp4 -noautorotate -i file:"/data/regmov/Chal Mann Jeetva Jaiye 2 (2023)/Chal Mann Jeetva Jaiye 2 (2023) WEBDL-1080p.mp4" -map_metadata -1 -map_chapters -1 -threads 0 -sn  -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "72b0fbc1bfc9f139395d3c42e0ac9350-1.mp4" -start_number 0 -hls_base_url "hls/72b0fbc1bfc9f139395d3c42e0ac9350/" -hls_segment_filename "/config/cache/transcodes/72b0fbc1bfc9f139395d3c42e0ac9350%d.mp4" -hls_playlist_type event -hls_list_size 0 -y "/config/cache/transcodes/72b0fbc1bfc9f139395d3c42e0ac9350.m3u8"


ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      58.  2.100 / 58.  2.100
  libavcodec    60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter    9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample  4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
file:/data/regmov/Chal Mann Jeetva Jaiye 2 (2023)/Chal Mann Jeetva Jaiye 2 (2023) WEBDL-1080p.mp4: No such file or directory

I also checked the permissions and attaching it here 

Code:
silent@omv:~$ sudo ls -l "/drive1t/media/regmov/Vash (2023)/"
total 4
lrwxrwxrwx 1 aarsh users 61 Jun 22 21:44 'Vash (2023) WEBDL-1080p.mp4' -> '/drive1t/media/movies/Vash (2023)/Vash (2023) WEBDL-1080p.mp4'
silent@omv:~$ sudo ls -l "/drive1t/media/movies/Vash (2023)/"
total 2573232
-rwxrwsr-x 1 aarsh users      91616 Jun 20 13:17 'Vash (2023) WEBDL-1080p.en.hi.srt'
-rwxrwsr-x 1 aarsh users 2634890489 May  4 14:28 'Vash (2023) WEBDL-1080p.mp4'

While Jellyfin does play the file directly, only symlinks give me the errors

I guess the issue is from inside the Jellyfin container, symlinks linking to actual path doesn't work.

Code:
silent@omv:~$ sudo docker exec -it jellyfin bin/bash
root@86cefe1980c3:/# ls
app  command  defaults    donate.txt  init  lib64  media  package  root  srv  transcode
bin  config  dev          etc        lib    libx32  mnt    photos  run  sys  usr
boot  data    docker-mods  home        lib32  lsiopy  opt    proc    sbin  tmp  var
root@86cefe1980c3:/# ls -l "/data/movies/Vash (2023)"
total 2573232
-rwxrwsr-x 1 abc users      91616 Jun 20 13:17 'Vash (2023) WEBDL-1080p.en.hi.srt'
-rwxrwsr-x 1 abc users 2634890489 May  4 14:28 'Vash (2023) WEBDL-1080p.mp4'
root@86cefe1980c3:/# ls -l "/data/regmov/Vash (2023)"
total 4
lrwxrwxrwx 1 abc users 61 Jun 22 21:44 'Vash (2023) WEBDL-1080p.mp4' -> '/drive1t/media/movies/Vash (2023)/Vash (2023) WEBDL-1080p.mp4'



RE: Is it possible to have separate library based on language? - fedonr - 2024-06-22

(2024-06-22, 04:49 PM)fedonr Wrote:
(2024-06-21, 08:57 PM)TheDreadPirate Wrote: In your source folder each movie needs to be in its own folder, which is what our documentation states is the recommended folder and file structure anyway.

https://jellyfin.org/docs/general/server/media/movies/

Once you put each movie in its own folder, modify your script to symlink the folder instead of the file.

As I stated, Jellyfin will follow symlinks for folders and will ignore symlinks for files.

Hello, sorry I missed out on it yesterday, as I didn't check the playback. I did check the permissions and everything is good. Also Jellyfin detects everything correctly when it comes to Symlinks in terms of library update and metadata but the playback doesn't work I get the below error, while the symlinks does play via filemanager

Code:
{"Protocol":0,"Id":"e81a7e087fd2d744de287c30f8f7b7f8","Path":"/data/regmov/Chal Mann Jeetva Jaiye 2 (2023)/Chal Mann Jeetva Jaiye 2 (2023) WEBDL-1080p.mp4","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mp4","Size":null,"Name":"Chal Mann Jeetva Jaiye 2 (2023) WEBDL-1080p","IsRemote":false,"ETag":"543b6ca4c9f21c87d81daf7a932499c0","RunTimeTicks":null,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[],"MediaAttachments":[],"Formats":[],"Bitrate":null,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":0,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -f mp4 -noautorotate -i file:"/data/regmov/Chal Mann Jeetva Jaiye 2 (2023)/Chal Mann Jeetva Jaiye 2 (2023) WEBDL-1080p.mp4" -map_metadata -1 -map_chapters -1 -threads 0 -sn  -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "72b0fbc1bfc9f139395d3c42e0ac9350-1.mp4" -start_number 0 -hls_base_url "hls/72b0fbc1bfc9f139395d3c42e0ac9350/" -hls_segment_filename "/config/cache/transcodes/72b0fbc1bfc9f139395d3c42e0ac9350%d.mp4" -hls_playlist_type event -hls_list_size 0 -y "/config/cache/transcodes/72b0fbc1bfc9f139395d3c42e0ac9350.m3u8"


ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      58.  2.100 / 58.  2.100
  libavcodec    60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter    9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample  4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
file:/data/regmov/Chal Mann Jeetva Jaiye 2 (2023)/Chal Mann Jeetva Jaiye 2 (2023) WEBDL-1080p.mp4: No such file or directory

I also checked the permissions and attaching it here 

Code:
silent@omv:~$ sudo ls -l "/drive1t/media/regmov/Vash (2023)/"
total 4
lrwxrwxrwx 1 aarsh users 61 Jun 22 21:44 'Vash (2023) WEBDL-1080p.mp4' -> '/drive1t/media/movies/Vash (2023)/Vash (2023) WEBDL-1080p.mp4'
silent@omv:~$ sudo ls -l "/drive1t/media/movies/Vash (2023)/"
total 2573232
-rwxrwsr-x 1 aarsh users      91616 Jun 20 13:17 'Vash (2023) WEBDL-1080p.en.hi.srt'
-rwxrwsr-x 1 aarsh users 2634890489 May  4 14:28 'Vash (2023) WEBDL-1080p.mp4'

While Jellyfin does play the file directly, only symlinks give me the errors

I guess the issue is from inside the Jellyfin container, symlinks linking to actual path doesn't work.

Code:
silent@omv:~$ sudo docker exec -it jellyfin bin/bash
root@86cefe1980c3:/# ls
app  command  defaults    donate.txt  init  lib64  media  package  root  srv  transcode
bin  config  dev          etc        lib    libx32  mnt    photos  run  sys  usr
boot  data    docker-mods  home        lib32  lsiopy  opt    proc    sbin  tmp  var
root@86cefe1980c3:/# ls -l "/data/movies/Vash (2023)"
total 2573232
-rwxrwsr-x 1 abc users      91616 Jun 20 13:17 'Vash (2023) WEBDL-1080p.en.hi.srt'
-rwxrwsr-x 1 abc users 2634890489 May  4 14:28 'Vash (2023) WEBDL-1080p.mp4'
root@86cefe1980c3:/# ls -l "/data/regmov/Vash (2023)"
total 4
lrwxrwxrwx 1 abc users 61 Jun 22 21:44 'Vash (2023) WEBDL-1080p.mp4' -> '/drive1t/media/movies/Vash (2023)/Vash (2023) WEBDL-1080p.mp4'

As in Jellyfin Voulme binding is  /drive1t/media/ to /data in Jellyfin, so when symlinks see /drive1t/media/ it might not detect the file


RE: Is it possible to have separate library based on language? - TheDreadPirate - 2024-06-22

Yes, if you are using symlinks it has to be a path that the container has mounted and the path matches. I found this out the hard way.


RE: Is it possible to have separate library based on language? - fedonr - 2024-06-22

Great! Even I just right now tested that, before I came back here. And it works now, matching the naming on both ends of docker volume binds, makes it work flawlessly. Thank you so much