BMT Everything you wanted to know

BMT Overview

About this document

What is BMT?

What is Phoenix?

What kinds of things can I do with the BMT Web Interface?

Why call it BMT?

What is the relationship between BMT and Phoenix?

What is Phoenix Fanart, and how does it work with BMT?

Why doesn’t BMT provide a STV UI Plugin?

How much time do you spend on BMT?

Do you accept donations for BMT?

A donation is NOT

What alternatives are there to BMT?

BMT Licence

About this document

This document contains information about BMT and its Author, but this is not a user guide.  If you are looking for information on how to use BMT, then consult the User Guide.

It is recommended that you read this document, even if you’ve been using BMT for a while.  This document help explain the origins and evolution of the product.

What is BMT?

BMT is a tool that allows an end user to fetch fanart and metadata for TV shows and Movies.  It’s primary interface is a web browser and it runs as plugin inside SageTV7, but it also runs in the background, fetching fanart and metadata for items as they are added to your sage collection.  Currently BMT support fetching TV information from TheTVDB and movie information from IMDB, TheMovieDB, and DVDProfiler.

BMT also contains a bunch of ‘batch’ operations that be applied to media file items, such as marking items as watched, fixing up genre information, exporting metadata, and more.

The one thing that BMT is not, is a collection manager.  While it provides a browsing facility to browse you media files, and it update the metadata manually, it is not replacement for full function collection managers, such as DVD Profiler.  But, BMT is designed in such a way that I can integrate with other collection managers.

BMT is not associated with SageTV in any way, so please do not send support related questions, regarding BMT, to core SageTV employees.

What is Phoenix?

BMT relies heavily on the Phoenix APIs.  You may have seen the words, Phoenix, Phoenix APIs, Phoenix Fanart, and sometimes the Phoenix Initiative being thrown around, and you may confuse it with being a part of BMT, but that is not the case.  BMT uses Phoenix, but BMT is not Phoenix.

Phoenix is select group people all working towards a common goal of creating APIs and a replacement SageTV STV for SageTV7.  Phoenix has many api groups, collectively known as the Phoenix APIs.  Phoenix has APIs for downloading metadata and fanart (used by bmt); APIs for presenting your Sage Media Files in customized views (used by bmt); APIs for dynamic menus, user profiles, dynamic configuration, events, and much, much more.  So, in a nutshell, Phoenix is the name of the Project, while Phoenix APIs is the name of the services that being used by the Phoenix project, BMT, and other plugins.

Phoenix Fanart refers the common fanart folder structure that is used by Phoenix.  The Phoenix APIs know how to read and write the images in that folder structure.

What kinds of things can I do with the BMT Web Interface?

The Web Interface is the main entry point to interact with BMT.  If you’ve installed the plugin, then you can access it as http://localhost:8080/bmt/

Once you access the web UI here are some of the things that are possible

Automatically fetch fanart/metadata for multiple items

Manually update a single item from the web ui

Export a .properties for every TV and Movie media file (for backup purposes)

Import TV shows that you have recorded from other sources into the SageTV Recordings

Set/Unset the Watched Status for multiple items

Remove Fanart for multiple items

Remove the custom metadata information for multiple items

Remote the .properties files for multiple items

Clean up Genres for multiple items

Export a Poster for multiple items that can be used by the default STV

Browse your TV/Vidoes using many different Views

Why call it BMT?

Why not call it Sean’s Cool Metadata Fetcher, or something more catchy? To understand the name, I’ll have to give some history of the product.  I switched to SageTV from Xbmc in October of 2007.  At that time, I wasn’t a committed user, although I did find the platform to be compelling.  The big thing that was lacking to me, was the fact that all my ripped media didn’t have ANY descriptions, titles, release dates, (ie, metadata) and nice thumbnails.   Nielm did have an IMDB plugin, which was handy, but I needed something that would process all my files in one batch operation.  

It would be almost a year later before BMT was born (July of 2008).   I’m very much a command line type of person, and initially, I only needed a tool that would iterate over my 1000+ videos and download thumbnails and metadata once, so I when I released BMT it was a “batch” tool, run from the command line that would take a directory as input, and then process each media file, downloading metadata and thumbnails.  I never intended it to be a tool that would integrate into SageTV, it was more of a one time only tool, when you switched to SageTV from another platform. So, given that it was a tool, that downloaded metadata in batches, the name became Batch Metadata Tools, or simply BMT.  

BMT was also known as BMI for a short time as well, and you’ll still see people refer to it as BMI or Batch Metadata Importer, but BMT is the official name, and now you know why.

What is the relationship between BMT and Phoenix?

BMT started out as a simple metadata fetching tool, that quickly grew in many directions.  At the time that I was building up BMT, I was contacted by the very secretive, and extremely talented Phoenix Initiative.  I was asked if I wanted to join, and let be honest, who doesn’t want to be a part of secret society with secret handshakes, etc... so I joined.  After joining Phoenix,  I added a large amount of code,  and I was finding that I was duplicating my efforts between BMT and Phoenix.  BMT had metadata/fanart and VFS (virtual filesystem module) apis, and I didn’t want to maintain two sets of code that were nearly identical. (I’m the main java developer for both Phoenix and BMT)  So, sometime around the 4.0 release of BMT, I stripped BMT of it’s code and I merged it with the Phoenix project.   By merging the code, it meant that BMT no longer had any code related to fetching fanart or metadata and that BMT would simply rely on the Phoenix APIs to do that work.  

The Web UI is the only thing that truly remains of BMT, and the rest is provided by Phoenix APIs.  That’s why all BMT logging ends up in the phoenix.log, it’s the reason that the BMT configuration is actually a node under Phoenix in the web ui configuration.

BMT is more like my personal playground, whereas Phoenix is more structured.  In many cases, I’ll prototype new APIs in BMT first, and then move them to Phoenix once they are stable or useful.

What is Phoenix Fanart, and how does it work with BMT?

Phoenix Fanart simply refers to the Central Folder structure that Phoenix uses to store fanart for media files.  Fanart includes Posters, Backgrounds and Banners.  During the development of Phoenix we started to iron out some of the fanart requirements, and during this time, there were some discussions starting in the public forums about how fanart should be handled and stored as well.  We (members of the Phoenix team) proposed the current model and provided a set of APIs that allowed other STV plugins to get fanart for media items.  Using the Phoenix APIs would ensure that fanart was consistent for any plugin that uses the APIs, and the plugin authors didn’t have to worry about the details for how fanart was stored on the filesystem.   Since I was in control of BMT, it was pretty convenient to have it use the Phoenix structure for storing fanart, instead of using another format.

Why doesn’t BMT provide a STV UI Plugin?

BMT today is basically a Web frontend to the Phoenix APIs with some extras thrown in.   I’m not much of a UI person, and doing STV development tends to require a certain amount graphical talent, which I don’t have.  So, there will never be a BMT STV plugin.  Phoenix instead, will provide the functions that a BMT Plugin would have done, and there are other plugins today that already use some of the Phoenix APIs for fanart and metadata.

How much time do you spend on BMT?

I spend too much time on BMT and Phoenix combined :(  On average I spend about 1-2 hours a night and about 5-20 hours on the weekend.  I do take some breaks, and there are times were I’ll go a couple of weeks and not touch anything.  I spend so much time on “Sage” that my kids automatically assume that when I’m at my computer that I’m working on “Sage” as they call it. (And to be honest, they are usually right)

Do you work for SageTV

I do not work for SageTV, nor have I ever, and no, they’ve never asked me to come work for them :)  But, I have a good relationship with SageTV.  They do not contribute code to BMT, nor do I ask them to. I have asked, from time to time, for particular APIs that would make my life easier, as it relates to BMT, and sometimes, the come through for me.  I actually work for another software company, but this hobby in no way conflicts with my current employer.

Do you accept donations for BMT?

I’ve wrestled with this from time to time.  People have contacted me about donations before, and I’ve always said, ‘not right now’.  My feeling is that I didn’t want people to donate to project unless I felt it was ‘complete’.  As of now, I feel that BMT is complete, stable, and I’ve finally finished the User Guide. So, yeah, I’ll accept donations.  

The donate link that I provide does not have a fixed amount attached to it.  You fill in the amount.  Personally, any amount, is fine, as long as you feel comfortable giving it.  If you given $1 then great.  If you give $5, still great.

 

Click Here to Donate Using Paypal

What Alternatives are there to BMT?

BMT is highly integrated with SageTV.  It is arguably the must integrated metadata and fanart solution for SageTV.  But there other tools that can do similar things.  So, if BMT is not to you liking, you can try some other tools

SMM - Sage MyMovies is a MyMovies implementation for SageTV7

BMT Licence

BMT is licensed under the Apache 2 License.  You are free to use BMT and you are free to modify and redistribute BMT.  If you extend, copy or modify BMT, or use it another project, then I ask the following extensions to the license to be adhered to.

You do not use the BMT name (or it’s longer form, Batch Metadata Tools) in your Plugin/Project, in a way that confuses it with this Product.

If you copy code from BMT, or use the code in BMT as a reference, that you give credit back to BMT, and that you release your code under the Apache 2.0 license as well.

If you copy code from BMT, that you do not use the same java package spaces.  Doing so will cause conflicts with BMT.

You do not repackage BMT as another Name and put it in the SageTV repository.  Doing so, would only cause confusion to end users.

You do not use BMT to provide core features in another Paid product that provide similar functions as BMT.  The key here is ‘core’ features.  You are free to use portions of BMT to augment another product.

It should be noted that while I ask the for the above extensions, you are under no legal obligation to adhere to those extensions, since the Apache 2 license is complete in itself.  I’m asking as a courtesy, that you respect the extensions listed.