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)

101 - Introduction to Chameleon CentralController (CCC)

Chameleon CentralController (CCC) is used to export My Movies metadata directly to CMC's Movie DB, and manage User Accounts and Parental Restrictions, and tracks Watch History and WatchLists on a per-user basis.
Post Reply
User avatar
Pauven
Posts: 2051
Joined: Tue Dec 26, 2017 10:28 pm
Location: Atlanta, GA, USA
Contact:

101 - Introduction to Chameleon CentralController (CCC)

Post by Pauven » Fri Dec 04, 2020 10:20 am

TL;DR:

Chameleon CentralController (CCC), is a standalone app that sits between Chameleon MediaCenter (CMC) and My Movies. CCC extracts your My Movies collection and syncs it with all of your CMC PC's. Unlike CME, CCC will export your Offline Titles and Movie Collections (new in MM v.5.30).

CCC also allows you to have individual user accounts for family members, friends and guests, which adds advanced features like parental restriction, PIN secured access, individually tracked title watch history, and personal WatchLists. User accounts also synchronize personal display preferences across all your CMC HTPC's.

Unlike CME, CCC does NOT write to or read from your media storage.

Unless you have a special use case (i.e. a partial collection copied to portable media), then you should use CCC instead of CME.

You can still use CME (or even use both CCC & CME) if you want to have individual metadata files exported for each title and stored in your media folders. This can make for a nice metadata backup solution, in case My Movies ever stops working in the future. Just don't export with CME and CCC at the same time, as the My Movies API service is single threaded and can only handle a single connection at a time.

CCC is free to use, though you will need 2500 My Movies Points to enable My Movies API access, plus CMC licenses to display more than 101 titles.

Skip to the next chapter: 102 - CCC Installation Considerations





What is Chameleon CentralController?
Chameleon CentralController, abbreviated as CCC, is a standalone app that sits between Chameleon MediaCenter (CMC) and My Movies (MM).

The primary purpose of CCC is to extract your My Movies collection, pre-format it for CMC, and share the exported data with all of your CMC PC's.

image.png
image.png (158.52 KiB) Viewed 726 times

Additionally, CCC allows you to create and manage user accounts for CMC, so you can have separate accounts for each family member and even for guests. Each user account can have different Parental Restrictions applied and can optionally restrict access via PIN codes. CCC will track watched history for titles and episodes and maintain personal WatchLists on a per user basis. And CCC will also sync your user preferences across all your PC's.


How much $ does CCC cost?
Just like CME, CCC is free, and there is no license required to use it.

However, CCC is designed to be used with CMC and My Movies. If you have more than 101 titles, then you will need one CMC license per PC to display your entire collection. And for CCC to export data from My Movies, you will need at least 2500 My Movies Points to enable My Movies API access.



I thought CME exports my My Movies data? Why yet another app?
While CME and CCC are both used to export your My Movies collection from the My Movies API, they do so in two very different ways:

CMC Metadata Exporter (CME)

CME exports metadata files, like mmTitle.xml and mmEpisode.xml, plus artwork like folder.jpg, directly into your media folders. This requires that your media drives be online and awake for the data to be written, and this solution only works for My Movies titles configured as Online. Offline Titles, which have no designated media folder into which to write data, cannot be exported with CME.

CME is very good at exporting metadata and artwork, and actually exports a lot more data than My Movies does by default. But many users don't like writing all this extra metadata to their media folders, preferring to keep their folders clean and free of extra files.

Additionally, exporting the metadata is only half the solution. You then have to run Syncs in CMC that scan your media folders looking for data to import, which CMC uses to build the local CMC Movie Database. While CMC is very good at importing media, it occasionally does get tripped up when metadata files are imported out of order, and it can only import those Online Titles, since CME doesn't export Offline Titles.

Overall, while this solution works fairly well, it's not the most efficient. CME exports your My Movies collection to thousands of little metadata files, only for CMC to have to read them back in and attempt to reconstruct your original My Movies collection. If you wanted to see the hardest way to move data from point A to point B, this is probably it. Note that this type of solution is very similar to how Kodi, Plex and other similar apps work - none of these apps have a direct connection to My Movies, and instead rely on individual metadata files to reconstruct your My Movies collection one title at a time.

Complicating matters further, the data flow between CMC and CME is actually bi-directional. When you watch a movie or episode in CMC, a flag file is saved to the media folder to record this event. Later, CME scans your media folders looking for these flag files, and updates My Movies via the API to mark titles/episodes as Watched or Not Watched.

There's got to be a better way, right?...


Chameleon CentralController (CCC)

CCC also exports metadata, but instead of saving them to individual files, CCC immediately processes the exported data and uses it to build the CMC Movie Database, which it then sends to your CMC HTPC's when they check in for updates. This has several advantages:

• The folder scanning Sync process in CMC is eliminated
• Your media folders do not have any data written into them
• Your media drives do not need to be online
• Offline Titles can be exported
Movie Collections (a new feature in MM v5.30+), which are offline data, can also be exported
• The My Movies metadata is always processed in the correct order, improving CMC's movie collection accuracy
CCC only has to process the exported metadata once for all CMC HTPC's in your home
CMC directly connects to CCC to bi-directionally sync all data (movies data, watched history, user accounts)


As you can tell, CCC has a lot of advantages over CME.


Wouldn't it be better to just have CMC communicate directly with My Movies?
No, for various reasons listed below.

It seems that everyone wants that wonderful My Movies on Windows Media Center experience. WMC had a direct connection to My Movies, and your collection was always up to date. Why not have CMC directly talk to MM instead of going through a middle man? This seems more complex, right?

Well, yeah, this is more complex, no doubt about that, and it was a lot harder to develop this solution. There's got to be some really good reasons to do something the hard way. So, what are those reasons?

Speed!

The primary reason that CCC exists is speed, or more precisely, the lack of speed with My Movies. Yeah, I said it: My Movies is pretty slow.

I'm sure you've noticed how My Movies Collection Management is slow to display your movies when you browse them. That's the exact same speed that CME and CCC endure when exporting your collection.

For example, I have around 2000 titles in my collection. It takes just over 2 hours to export with CME, and closer to 3 hours to export with CCC (which exports a LOT more data than CME). And all of this data is needed to enable all of CMC's capabilities. While there are some methods to make using the API quicker for a directly connected "Browsing Interface", ultimately the API exports slowly enough that you would notice slowdowns when browsing your collection in CMC if it was directly connected to My Movies. In fact, current WMC + MM users experience this slowness today.

The solution is to let CCC manage the exporting behind the scenes, and provide the final result to CMC, which provides a really nice performance boost. How much faster is it with CCC? Well, remember that nearly 3 hour export time from MM to CCC, it transfers the resulting database from CCC to CMC in a few seconds! CMC gets movie data from CCC approximately 10,000 times faster! Artwork transfers about 30 times faster too.


Easier Install & Maintenance

One of the big advantages of CMC is that you don't need My Movies running on every HTPC! In fact, you only need one copy of My Movies running for your entire collection. This is a great benefit, because My Movies is a big, complex program with a lengthy and sometimes error prone install process.

In comparison, CMC is super easy to install. Extract a zip file to a folder and you're done. Upgrades are also easy - CMC will auto-update for you if you let it. And both CME and CCC are included in that zip file, and get upgraded when CMC is upgraded.

And you will only have one copy of CCC running to support all of your CMC HTPC's.


Concurrent Multi-Client Support

As great as My Movies is (and let's be honest, it really is great!), it does have a few significant shortcomings. The biggest shortcoming is that the My Movies API service appears to be single-threaded. If you try to communicate with the API from two different PC's at exactly the same time, the API service typically gets overwhelmed and stops responding to all requests.

This isn't a problem with WMC where you install a local copy of My Movies on every PC. But as was pointed out above, one of the greatest benefits of using CMC is that you no longer need My Movies running on every PC.

This means that if you had a houseful of CMC HTPC's all trying to communicate with a single My Movies PC, occasionally you would have resource contention and those PC's would all hang waiting on a response from My Movies. Factor in the API service speed issue detailed above, which means that all communications would take longer, and you would discover that these app hangs could happen surprisingly often. Not cool.

The solution is to place a single CCC instance in the middle, that way only a single client is every communicating with the My Movies API service, eliminating resource contention, and allowing multiple CMC HTPC's to talk to the single CCC instance simultaneously.


CCC sounds awesome! So why does CME still exist?
After reading how great CCC is - especially when compared to CME - you're probably wondering why we're still providing both apps. After all, CCC is easier to use, exports more data, eliminates the need to write to/read from your media folders, and generally makes CMC more like using WMC+MM. It's perfect, right?

Well, there are a couple use cases for which CCC is not the right tool, for which CME still provides a solution.

Portability

Some users like to make a subset of their collection portable. For example, perhaps you're going on vacation and want to take a few dozen movies for the trip, or you have a kid in college and want to give them some new movies to watch on campus. If you've only got a few terabytes of portable storage, you probably won't be able to take your entire collection with you.

Since CCC always displays your entire collection, you will probably be frustrated trying to find the handful of titles you copied to your portable storage.

Using CMC's folder scanning to import just the titles on your portable drive is a much better solution. And to get the best results with CMC's folder scanning, you would want to first export your metadata to files using CME.



Metadata Backup

Over the past few years of supporting CMC, many users have expressed concern to me that My Movies may not work forever. Unfortunately, that is a very real concern - one that I share with these users.

So you might be wondering if there is anything we can do to make sure our collection still works in CMC long after My Movies ceases to work, should that day ever come to pass?

YES! We can use CME to export our metadata to files now, as a type of metadata backup. CMC will continue to optionally work with folder scanning.

So if My Movies ever shuts down, which would break both CCC and CME, then your previously exported metadata files will still work with CMC! But this metadata backup solution only works if you use CME now, before My Movies shuts down. After all, a backup only works if you make it before you need it, not after...

To be clear, I am not suggesting that My Movies is shutting down operations. I have no inside knowledge of Binnerup's operations or long term plans. In fact, Binnerup's recent updates to My Movies has given me new hope that My Movies will be around for a long time (fingers crossed, knock on wood, pinch of salt). But I never expected Microsoft to abandon Windows Media Center either.

Ultimately, it is up to you to decide if you feel the need to use CME to make a metadata backup. But do understand that CME's exported metadata is the only contingency plan that I've developed should the worst come to pass and My Movies stops working.


So which app should I use, CCC or CME?
For 99% of you, the answer is simple: You should use Chameleon CentralController (CCC) to display your My Movies collection in Chameleon MediaCenter (CMC).

For the other 1% of you, who want to make a portion of their collection portable, CMC Metadata Exporter (CME) is the right app to use.

But there's also a completely different answer that might apply to you: Use both! Yes, you can use both, CCC for home use, and CME for metadata backup purposes and/or making your collection portable.


Proceed to the next chapter: 102 - CCC Installation Considerations
President, Chameleon Consulting LLC
Author, Chameleon MediaCenter

Post Reply