Library Storage on NAS with multiple Vero 4k

I am about to set up a second Vero 4k.

My media … the movies and TV shows … is all stored on NAS. No media files are local to the Vero 4k.

Question: can and should one store the “library” on NAS … all the movie / TV show details that are displayed (I think some call this the MovieSheet). Again, not referring to the media files themselves which are already on network attached storage, but rather the info that Kodi / OSMC gathers to display the media.

My goal is, storing this “library of details” (I wish I knew the proper name for this) on network attached storage would mean that running a library update on 1 box would also update the library on the other box.

Is this possible? Is it advisable? I would not want to have lag issues for example.

On the one box I already have set up, I installed a small app to update the library on a schedule. So it is not intrusive anymore. However I am trying to follow best practices since I may end up having additional Vero 4k boxes for other rooms.

Hello,

Yes – a MySQL Shared Library is ideal for this scenario. You can configure MySQL via My OSMC -> Network after you have installed / configured the server on your NAS.

Your NAS will need to be on 24/7 for this to work reliably.

There is an add-on called Library Watchdog which can be used to periodically scrape the library at intervals (so you don’t need to initiate manual scans).

Thank you very much for the reply. I do run my NAS 24/7. It even has UPS power back up, LOL. I will install and configure MySQL on it and go from there.

A bit off topic vs. this thread … The app I used to update the library is just a scheduler. I chose that instead of Watchdog to reduce the load on the CPU since I do not need to continuously watch for updates. I don’t add new content often enough to warrant that. I have it checking for updates every six or eight hours, I forget. If I add some new content and want to watch it immediately, I just need to plan ahead a little to manually trigger an update. NBD.

I don’t believe the watchdog constantly monitors for events, because inotify isn’t possible for some network filesystems.

Anyway – MySQL is the way to go for multiple systems and makes adding more devices easier in the future.

Sam

You could try using something like Emby. Which is what I do.

Emby runs on your sever and will auto update and monitor folders etc. Uses a central database and everything is displayed on Kodi via the Emby Kodi addon. It’ll even synchronise watched status etc across multiple Kodi installs.

Of course it may well be over kill in your your case but I find it a pretty neat way to catalog and synchronise playback across installs.

1 Like

Thanks for the tips about Watchdog and Emby
(Your Media, Your Way - Emby).

Yes, a central SQL library on your NAS will provide that feature. You can add a movie to your library on one box and it will be available on all boxes, since the all use the same database. Though local clients will download artwork and stuff from the internet when accessed.

It probably makes sense to use one box where you have a library scan running or initiate it manually on it when you add stuff. Up to you. Or on a PC. Up to you.

An addon like Watchdog on the Vero will of course not work as the data is on the NAS and there will be no kernel based notification possible in the same way as on locally attached filesystem.

You can run something similar on your NAS though that just sends a command to one of the Veros if it detects new files and they are scanned to the DB. Or add files manually. Just depends how automated the rest of your setup for new content is designed. Same deal as with just one consumer basically.

Many options here, from simple cron job that scans up to elaborate automatically renaming, putting content on specific disks, symlinking to move stuff around easily without rescanning, notifications of new content to smart phones etc. You can go as far as you want here with some very basic scripting. Stuff is one DB, so all clients will see it. How to add it to the DB is the same deal as with one client only - only difference that Kodi will store it in a central SQL DB and not locally.

But yeah, central SQL DB will work fine and is what you want if you have more then one device accessing content from the NAS.

I believe Watchdog scans periodically, it does not depend on filesystem events.
So it should work under these conditions.

All the recommendations that you’ve gotten are good, but there is one more thing I’d recommend:

If your NAS supports NFS and you don’t need any Windows systems to access the files, use NFS instead of SMB.

For me that’s VERY right,
I’ve 28 TB used in my NAS, and I’ve a lot of files (movies, TV Series, music videos, music and photos) and don’t forget thumbnails for everything.
Also take a look

http://kodi.wiki/

and
http://kodi.wiki/view/Video_library

and
http://kodi.wiki/view/Video_management

and if you will add music

https://picard.musicbrainz.org/

If you scrap only english Tv Series perhaps it’s works out of the box, for movies ???
For other languages it’s more harder
also you can take a look to

https://www.tinymediamanager.org/

Edit: Take a look to your NAS, with my Synology NAS I can enable NFS
and SMB for the same folder
Michael

If only there were one button to click, and NFS would then be "on’. LOL. As a newb I have to research each and every step.

Related question: to set up / config the second Vero 4k unit, is there a way to make a “copy” of what’s on the first one and copy it to the second?

The MyOSMC add-on has an easy to use backup function that could be used for duplicating Kodi setups.

1 Like

Thank you @ActionA

Yes you can try.
Created your MySql (MariaDB) database, when you can on your NAS (for me best way)
Created your folders on your NAS
Basicly

  • movies ----> films
  • TV Series
  • music --> your music CDs or streamed music (with MusicbrainzIDs)
  • music videos —> clips
  • images —> your (own) photos from your camera, smartphone etc

Then setup nfs inside your NAS.
Then you take a look to Kodi add sources, and probably you can see your folders inside Kodi
**** Now take care, that is the Kodi nfs, much people say it’s better to use Fstab nfs.
For the moment it isn’t the problem. Only one when you have a lot of data inside your Database it’s more difficult to switch.
When you have something inside your () folders try update mediacenter.
**** Also be carefull, try with some movies, and don’t forget what you have read in the Kodi wiki

EDIT: some corrections my Internet connection is bad this evening

This is somewhat what I am looking for. Does anybody have detailed instructions?

My server is on 24/7 (unless…) and I have created a vero user and database. Put all the details in my first vero.

Does this now create what it needs? And when I get a second vero in (hopefully today) I just create a backup copy to restore on my 4+ and I have 2 boxes running smoothly identical?

I use trakt for watched status etc and am hoping this creates the sync for progress in NAS stored films. Correct? or does it even sync other statusses?

Pretty much, my goal is to pause something in the living, go to bed and continue where I left off, or should I be looking at another solution for that?

I think MySQL would meet your requirements here.

Yes. Provided you’ve ‘pointed’ Kodi to the database. The easiest way to do that is under My OSMC’s MySQL configuration section under Networking.

Sam

Kodi’s wiki is where you should start but a web search will find lots of other guides people have written on this type of setup as well.

https://kodi.wiki/view/MySQL

I think Trakt can sync watched status but not progress. A MySQL setup replaces your local library with a centralized one so with this type of setup there is no “sync” because all clients are using the same source. As such when you stop playing on one client this gets recorded in the database and when you go to another client and try to play it the resume dialog is automatic. About the only hiccup is that until you switch screens (which causes a fresh update from the database) the indicator that the video is partially watched will not be shown.

Just to double check, this only works for the network stored media. This would not work for media played in the addons. Or would it?

The MySQL setup encompasses the video and/or audio databases which includes library metadata, scraper settings, and media info and watched status for items played through the ‘file mode’. As for as add-ons go it would be totally dependent on the add-on and how it works. Generally speaking, an add-on settings are stored locally and probably not suitable for sharing across clients. Your best bet here is to check with the developer of whatever add-on is in question.

Thank you for that. It is just in a ideal world everything would work that way. I seem to be hitting a snag with the MySQL database anyways.

Create a user “vero” and granted all global rights (just to make sure it is not too restrictive).
Configured my mariaDB to accept remote connection and tested from my laptop

 mysql -u vero -p -h 192.168.1.99
 Enter password: 
 Welcome to the MariaDB monitor.  Commands end with ; or \g.
 Your MariaDB connection id is 21
 Server version: 10.3.25-MariaDB-0+deb10u1 Debian 10
 
 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 
 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
 MariaDB [(none)]> exit
 Bye

Seems to work.

Configured my advancedsettings.xml

<?xml version="1.0" encoding="utf-8"?>
<advancedsettings>
  <videodatabase>
    <name>vero_Video</name>
    <type>mysql</type>
    <host>192.168.1.99</host>
    <port>3306</port>
    <user>vero</user>
    <pass>XXXX</pass>
  </videodatabase>
  <musicdatabase>
    <name>vero_Music</name>
    <type>mysql</type>
    <host>192.168.1.99</host>
    <port>3306</port>
    <user>vero</user>
    <pass>XXXX</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
</advancedsettings>

And doublechecked the port:

MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'PORT';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.004 sec)

Unfortunatly I still get a no connection in my log:

[2002](Can't connect to MySQL server on '192.168.1.99' (101))