Decorum for the Forum:
  • Be nice. If you want to be mean, try Reddit.
  • No Piracy. If you want to be a thief, there are dark places on the internet dedicated to that.
  • No Cracking. Discussions on AnyDVD, DeUHD, DVDFab, UHDKeys and similar tools are not permitted here.
  • No Spamming. If you want to make a buck, work smarter... somewhere else.
  • No Adult Content. Half the internet is dedicated to adult content. This half isn't.

Privacy Policy: Click Here to Review (updated September 30, 2020)

[Answered] Quick question about metadata

General support forum for Chameleon MediaCenter (formerly MM Browser)
Post Reply
User avatar
Bairman
Posts: 21
Joined: Thu Mar 12, 2020 1:14 pm

[Answered] Quick question about metadata

Post by Bairman » Wed Jan 25, 2023 7:20 pm

Howdy all,

It's been a few years since I played around with CMC but I see that it now uses the MyMovies API for metadata. However, not being terribly familiar with how APIs work, my question is this: where exactly is CMC getting the metadata from? Is it from the MyMovies webservice or from the local SQL database?

<crosses fingers> Please let it be local.

User avatar
Pauven
Posts: 2777
Joined: Tue Dec 26, 2017 10:28 pm
Location: Atlanta, GA, USA
Contact:

Re: Quick question about metadata

Post by Pauven » Thu Jan 26, 2023 6:04 pm

Hey Bairman,

The local My Movies "server" install includes the API as a local http service. This My Movies API is something that Binnerup provides for any 3rd party applications to use, and I believe they use it themselves for things like the WMC plugin. They have documented in their knowledgebase all of the valid calls you can make against their API. Each individual user is required to have at least 2500 My Movies Points (aka Contribution Points) to unlock the API, otherwise only Binnerup developed apps (like WMC) have access.

When CME or CCC (both use the same local My Movies API) make an API call to your local My Movies server install, the My Movies code handles that request according to its own programming. In most cases, it queries the My Movies DB to retrieve the data, but in some cases it will also scan your media folders to provide additional data (like valid file paths) in the response. All of this happens automatically, behind the scenes, by My Movies, and CME/CCC have very little control over how this is done (other than setting some API options when making the request). In addition to retrieving data from your local SQL DB and media folders, My Movies will reformat the data and embed it into a predefined XML format for the requesting application to process.

I know it gets confusing since there is also a My Movies web service on the internet - to be clear CME/CCC do not talk to Binnerup servers on the internet, so it does not use this web API, just the local install's API. I don't believe Binnerup provides 3rd party access to their web API, but I could be wrong.

To look at it from a different perspective, basically CME/CCC just calls a URL, like opening a web page, pointing at your local My Movies server. The URL has a lot of extra parameters that are used to specify what data is wanted from My Movies. The local My Movies server responds with a web page that is XML data. CME/CCC then takes that data and processes it to make it work for CMC. Depending upon the content of your My Movies collection, if you had 1,000 movies then CMC will probably have to send 5,000-10,000 different requests to the My Movies API to get your full collection. TV Series have significantly more requests to also retrieve the season and episode data.

The My Movies API is pretty slow, especially when it scans a media folder in order to fulfill a request. It's actually really quick to process requests that only pull data from the DB. I've come to believe that this slowness is the same behavior you see in the My Movies Collection Management GUI when you select a title to work with it, that it is doing some folder scannning in real-time in addition to retrieving data from the SQL DB. I've asked Binnerup to provide an API option to disable folder scanning for certain requests, as the extra data that the API provides is not used or wanted by CME/CCC, and I throw it away when I process the response. Not only would the API be significantly faster without the folder scanning, it would also prevent from spinning up hard drives just to process an API request, as all the data would come from only the DB.

Hope that helps. I know that's a lot more info than you asked for, but thought I would share in case you or anyone else is interested.

Paul
President, Chameleon Consulting LLC
Author, Chameleon MediaCenter

User avatar
Bairman
Posts: 21
Joined: Thu Mar 12, 2020 1:14 pm

Re: Quick question about metadata

Post by Bairman » Sat Jan 28, 2023 1:20 pm

Hi Paul,

Thanks for the excellent, detailed response. The bottom line for me is that it will use my local database and that makes me very happy. I'll be giving CMC another try in the near future.

Post Reply