Unfortunately Synology has discontinued their support for Videostation starting from DSM version 7.2.2 as can be read in the Release Notes for DSM | Synology Inc.:
#6 Video Station is not available on DSM 7.2.2. Refer to this article for workarounds to stream videos to end devices.
Time to evaluate the alternatives …
Alternatives: Plex, Emby, Jellyfin
Synology recommends three alternatives: Plex, Emby and Jellyfin (the OpenSource fork of Emby). I tried all three now and ended up at Jellyfin. I only want to stream my videos from the NAS to an Android device or FireTV. I don’t need LiveTV and no other sources from the internet etc. I’m really just about serving local files.
Plex, is just too much for me. It also pushed for registering an account at Plex.tv and I didn’t immediately see a config for disabling all the internet sources.
Emby was just great! Just what I needed. Until I saw that I need to pay a ~5€/Month subscription to watch my movies on FireTV via the app. Using the WebBrowser would have been an option but I found that just a bit too cumbersome.
Jellyfin, looks just the same as Emby. At least in the first couple of minutes I didn’t see a difference and it also does exactly what I need. Yet, as my Synology NAS doesn’t support Docker, I have to run it on a separate RaspberryPi.
Installing Jellyfin
Install Samba and mount Movies
Jellyfin can only stream from a local file source. So, movies from the NAS needed to be mounted via SMB to the Raspberry. All the infos can be found on Stackexchange as well. Don’t get confused why my directories are named ‘kodi’. Videos in my network just have a bit of history.
sudo apt-get install samba-common smbclient samba-common-bin smbclient cifs-utils
sudo mkdir /mnt/kodi
Mount the NAS directory on startup:
sudo nano /etc/fstab
//diskstation/kodi /mnt/kodi cifs user=...,pass=...,iocharset=utf8,rw,uid=1000,gid=1000 0 0
uid and gid should be the same as your pi user’s uid/gid:
$ id
uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm), .....
Then just mount:
sudo mount -a
If you want to put the credentials into a separate file:
nano ~/.smbcredentials
username=...
password=...
chmod 600 ~/.smbcredentials
And change the entry in /etc/fstab
to:
//diskstation/kodi /mnt/kodi cifs credentials=/home/pi/.smbcredentials,...
I find it quite handy to reboot the RaspberryPi at this stage to ensure that mounting on startup REALLY works.
Installing Jellyfin
I took most the info from Installing Jellyfin to the Raspberry Pi – Pi My Life Up. Refer to it for more verbose explanation.
First, install prerequisites and add the Jellyfin Repository.
sudo apt install apt-transport-https lsb-release
curl https://repo.jellyfin.org/debian/jellyfin_team.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/jellyfin-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/jellyfin-archive-keyring.gpg arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
sudo apt update
Now finally, install Jellyfin:
sudo apt install jellyfin
After finishing, Jellyfin is available from your browser under http://[hostname]:8096
All the rest is done in the browser and pretty self-explanatory. A walkthrough including screenshots etc can be found here as well: Installing Jellyfin to the Raspberry Pi – Pi My Life Up.
The FireTV- and Android-App immediately find the server and things just work like a charm.
If you experience that the library scan hangs somewhere, check out “How to fix: Jellyfin Library Scan Hangs“!