Between Linux and Anime

Kind of like Schrodinger's Cat

Nepomuk and Anime, my new pet project

Some time ago I stumbled upon a cool little piece of code that Sebastian Trueg wrote, which sourced an online tv database (the TVDB) for meta information about video files of TV series you had on your disk, figuring out what the series, season and episode was from the filename, and storing that info in the Nepomuk semantic framework. That happened to coincide with some of the ideas I had on how a semantic desktop should work with regards to media consumption, and specifically for watching and dealing with Anime. Anyway I recently cleared myself some hobby-hacking time, rolled up my sleeve, set Trueg’s little program up on my box, and tinkered a little with the filename analyzer. Result of which is that the program now also recognizes common anime rip filename formats, and since the TVDB also contains a pretty comprehensive list of anime, we get the following:

Pretty sweet :) In fact, the way Trueg wrote it, you don’t even need to go through the context menu when you add a new file, Nepomuk/Strigi automatically attempts to fetch the metadata when it indexes your new file. So what is the point of this? Point number one of course is that it’s pretty cool! Point number two is that all these metadata are stored in Nepomuk, which in turn makes these data available to any other program running on the desktop that recognizes and queries it. What kind of programs would want to do so? In short, plenty. Some ideas off the top of my head would include a media player that knows what episode of what series it is playing, and can automatically offer to play the next episode, or list the other episodes of the series that you have. Or a series browser (plasmoid?) that let’s you browse your videos by series instead of by folder. Your imagination is the limit. I would myself like to try to make some of those happen, but that’ll be getting too far ahead for the time being.

This program in it’s current state has a glaring problem in the context of anime: the TVDB web api (through which the program searches for the series info) does not support aliases, and so you need to be searching for the precise name of the series as stored on TVDB or you’ll turn up blank. And with anime, series names can vary pretty wildly. For example, querying “Dantalian no Shoka” doesn’t work because the series is stored in TVDB as “The Mystic Archives of Dantalian”. It’s an annoyingly serious shortcoming – half of my files don’t work thanks to this.

So fixing this will be what I’ll work on next. TVDB says they’ll support aliases in their new site, but there’s no release date of that in sight. A simple solution would be to query a different site, like MAL, which appears to have a decent API. In fact, new web sources and APIs should be pluggable, so that’ll be task number one, separating the web-sourcing part into a plugin infrastructure.

I do have some vague plans on the future of this thing, but let’s not count our chickens too much. We’ll get there when we get there. In the meantime if you want to play, you can clone my git repo and grab the source code:

git clone git://git.code.sf.net/p/nepomukoracle/code nepomukoracle-code

In order to build this you’ll also need Trueg’s libTVDb and Shared Desktop Ontologies 0.9.0 and onwards – look for that one in your repos.

1220
Rate this post
Thanks!
An error occurred!


  • Facebook
  • Twitter
  • Identi.ca
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • RSS
  • Reddit

Previous

The Lazy Cosfest 2012 Post

Next

Clannad, People, and a Philosophy of Doing

2 Comments

  1. Sebastian Trüg

    Nice. I suppose the additional filename filters can easily be ported back into my code, right?
    And if you implement support for another info fetcher – would be cool to combine our efforts.
    I think there is even someone else who tried creating a plugin framework – no idea how far that went…

    • Jason "moofang"

      Yeah it’s just a small patch atm, I’m thinking the regular expressions should probably be user specifiable too, like with a config file or something, but haven’t thought too much along there yet.

      If you still work on the program I’d be happy to collaborate rather than fork, though I’m not sure how :)

Leave a Reply

Powered by WordPress & Theme by Anders Norén