- March 31, 2008
- 80
- 12
- Home Country
-
United Kingdom
Hello,
For the last 3 weeks I have been busy working on a new plugin. Firstly, I'll give a little background to try and explain why I'm doing it. I have a multi-seat setup with a DroboFS storing all my movies/pictures/music and a HP MicroServer running the TV Server. I have 4 client PCs each of which has MP-TVSeries and MovingPictures plugins installed. I recently built a new client PC and started to get a bit frustrated when the Moving Pictures plugin took a couple of hours to download all the images and movie information. I just kept thinking "But I've done this 4 times already" !! So, what I've come up with is a system with 2 parts.
The first part is a windows service which monitors a list of folders and will use the api at themoviedb.org to pull down the information about each movie it finds. I name all my movies with the IMDB ID embedded in the file name within square brackets, for example ...
The second part is a MediaPortal plugin which connects to RavenDB. All the path names for the images are also stored in RavenDB, so the plugin just uses the centrally stored images. On the PC I am developing this plugin on, it takes about a second to load 329 movies. Obviously there is occasionally a slight delay in getting the images from the network share, but it's generally well under a second. The plugin configuration (apart from the RavenDB connection string) is also stored in RavenDB. So any changes are reflected in all instances of the plugin.
It's still early days but it is in a usable state as it stands. I have a seemingly ever growing list of features I want to add, but I'm using trello to split them into essential and future stuff. I'm only supporting the detailed list view currently. If there is any/enough interest I could be persuaded to extend that. I've written this thing for purely selfish reasons, I wanted a consistent setup across all my client PCs and I didn't want to waste space/time on each PC storing/downloading the same information over and over again. As I've got it now it does pretty much everything I use Moving Pictures for but I can spin up a new client PC in about 20 minutes (that included windows install) with virtually zero config for my movies. If I do release this then it'll be open source, as that's a condition of using RavenDB for free. It's currently in a private mercurial repository on BitBucket.
PS - I didn't realise until I came to write this message that there is something else called MyMovies. So suggestions on a postcard for a better name. MyMovies is a lot better than what I called it originally, believe me!!
For the last 3 weeks I have been busy working on a new plugin. Firstly, I'll give a little background to try and explain why I'm doing it. I have a multi-seat setup with a DroboFS storing all my movies/pictures/music and a HP MicroServer running the TV Server. I have 4 client PCs each of which has MP-TVSeries and MovingPictures plugins installed. I recently built a new client PC and started to get a bit frustrated when the Moving Pictures plugin took a couple of hours to download all the images and movie information. I just kept thinking "But I've done this 4 times already" !! So, what I've come up with is a system with 2 parts.
The first part is a windows service which monitors a list of folders and will use the api at themoviedb.org to pull down the information about each movie it finds. I name all my movies with the IMDB ID embedded in the file name within square brackets, for example ...
The service will only get the information for movies with the IMDB ID in the file name. I've done this because it take any ambiguity away, and I've done it that way for some time with Moving Pictures, as it gets a 100% success rate with the files like that. The backdrop and poster images are also downloaded by the service and stored in a central location, a share on my DroboFS. Only 3 images are downloaded of each type (posters/backdrops) and it will try and get images in the preferred language (themoviedg.org api has that feature now). For 329 movies I have 891MB used in my share. The service only download the images in the original resolution. I guess I could save space/bandwidth by limiting it to a lower resolution. The movie information is stored in RavenDB. The service will also grab the video/audio/text stream information at the same time (using MediaInfo.dll).Shrek (2001) [tt0126029].mkv
The second part is a MediaPortal plugin which connects to RavenDB. All the path names for the images are also stored in RavenDB, so the plugin just uses the centrally stored images. On the PC I am developing this plugin on, it takes about a second to load 329 movies. Obviously there is occasionally a slight delay in getting the images from the network share, but it's generally well under a second. The plugin configuration (apart from the RavenDB connection string) is also stored in RavenDB. So any changes are reflected in all instances of the plugin.
It's still early days but it is in a usable state as it stands. I have a seemingly ever growing list of features I want to add, but I'm using trello to split them into essential and future stuff. I'm only supporting the detailed list view currently. If there is any/enough interest I could be persuaded to extend that. I've written this thing for purely selfish reasons, I wanted a consistent setup across all my client PCs and I didn't want to waste space/time on each PC storing/downloading the same information over and over again. As I've got it now it does pretty much everything I use Moving Pictures for but I can spin up a new client PC in about 20 minutes (that included windows install) with virtually zero config for my movies. If I do release this then it'll be open source, as that's a condition of using RavenDB for free. It's currently in a private mercurial repository on BitBucket.
PS - I didn't realise until I came to write this message that there is something else called MyMovies. So suggestions on a postcard for a better name. MyMovies is a lot better than what I called it originally, believe me!!
Last edited: