Tuesday, 29 May 2012

Media Manager v2.1 released

Media Manager v2.1 has been released. This is a major update that focuses on iTunes integration. Here is a list of the major changes:
  • Seen files can be ignored
  • Directories can be watched for new media, which is then moved to the correct media directory.
  • MP4 Files metadata now handled by fork of atomic parsley.
  • Much improved MP4/M4V metadata.
  • Support for High Def media.
  • New Store for notifying iTunes of media file changes via a remote server running on the iTunes box.
  • Improved windows support.
  • Improved TV Show/Film searching.
  • Fixed issues with launch scripts.
  • Debian/Ubuntu install packages.
This has been quite a while coming, but it's finally here. Please use the project website to let me know of bugs or feature requests. Also if you find the application useful then let me know on my blog
I'm hoping that project releases will come quicker now with a smaller feature set. Currently work in in progress on the next release which will include a database store and a update to the XBMC scraper support.
The native tools that Media Manager uses have changed since the last release. It now uses media info and my Atomic Parsley fork. The new iTunes store also makes use of my remote itunes controller project.
To download the latest release please visit the project website. Their is a generic installer for most platforms and OpenSuSE/Debian/Ubuntu packages. Also you can find the latest OpenSuSE builds via my OpenSuSE source.

Tuesday, 22 May 2012

AtomicParsley Shield Fork 0.9.6 released

I've just made another release of my Atomic Parsley fork. I found a bug in the new --outputXML option that generated the wrong output on windows XP due to the console character encodings been non UTF-8. So I though I'd best fix it up and do a release.

So to grab the latest release binaries or the source code, go here.

Thursday, 17 May 2012

Using jenkins to build my opensource projects

I've been playing around lately with jenkins. Jenkins is a continuous integration server which has quite a good list of plugins. I've now got most of my open source projects building everytime a change is made. An in the cases of projects like AtomicParsley Shild Fork, I've gotten it to build on 4 different platforms every time a change is made to the source code.

Jenkins makes this pretty easy by allowing a master controll server and then salve servers. So I run the slaves on my different platforms. There are also plugins that allow VM's to be started for needed platforms. Thats something I want to explore for building on different Linux distributions.

The real advantage for me is when the build finished and Jenkins publishes the builds. I have it setup to uploaded AtomicParsley builds the public area of my drop box account. These are then linked to from the project website. In the case of MediaManager, it triggers another build which pushes the current build to the OpenSuSE build server and creates nighly RPM's of the project. These can be used by people who want to live on the bleeding edge.

The other thing I really like is that it collects all the test reports and generated documentation onto the jenkins server. This allows me to quickly review the latest build. I can see how this would be very usefull for teams of develops. However now find the building side of stuff is taken care of automatically leaving me much more time for development. Creating and testing relases is much less of a chore now.

Anyhow Media Manager is getting much closer to a release. Just testing things like the installers at the moment. Once I'm happy with them, I'll be pushing out the release :-)

Monday, 14 May 2012

Initial Release of Atomic Parsley Shield Fork

A while back, I created a fork of atomic parsley so that I could use it in Media Manager. Atomic Parsley is used to display and edit metdata in a mp4 file. It was not quite up to the task of setting some of the new iTunes atoms, so I created a fork with the new features.

Well things have progressed pretty well and I've just uploaded the first release (Version 0.9.5) of my fork of atomic parsley. Here is a list of the features added in this release:
  • CMake Build scripts.
  • Option to output MP4 atoms as XML.
  • Added support for 1080p iTunes atoms (--hdvideo option also takes a number)
  • Added --flavor option for setting flvr atom.
  • Allow sort order fields to be set in the format of --sortOrder name=value 
  • Added missing sort albumn option
  • Added option for setting plID atom
I realise that lot's of applications use atomic parsley under the hood for handling mp4 file atoms, so I'm hoping that the --outputXML option will make reading the atom contents a lot easier. 

I also took the optunity to setup a private jenkins continuous integration build server. This builds on 4 different platforms every time their is a commit to the bitbucket build repository. When their is a successful build, it uploads them to the public area of my drop box account. The end result is I now have nightly builds if atomic parsley as well as stable builds. To see the links to the prebuilt binaries, visit the project website.

If anyone finds any issues or features they would like to see, please raise a issue on the project website.

Friday, 11 May 2012

Initial release of itunes-remote-control-server

I've just published the inital release of my project itunes-remote-control-server. This is a project to make it possible to control iTunes on a headless server without a GUI. It provides a TCP server which can be connected to locally or remote by other applications to control iTunes. Alternatively it also provides command line commands for controlling iTunes.

Currently the server and scripts are able to perform these tasks:
  • Add new tracks/videos to iTunes Library.
  • Remove tracks/videos from iTunes Library.
  • Tell iTunes that the metadata needs to be refreshed from a file of the track/video.
  • List tracks that have missing files (dead tracks).
  • Remove tracks that have missing files (dead tracks).
  • Display information about tracks/videos in the iTunes library.
These operations can be performed by command line scripts, but also by using a TCP server. The next release of MediaManager will use the server to keep iTunes in sync with managed media libraries. In fact I've been running the latest svn version of MediaManager using the control server for a little while now. Seems to be working very well.

The server will work on windows or Mac OS X as long as the requirements are installed.
  • iTunes (latest)
  • Mac OSX or Windows
  • Mac Ruby ( On Mac OSX)
  • Ruby Gems: escape, sqlite3
See the install guides on the wiki for details on how to install it. If you find any issues, then let me know my the issue part of the website.

I'm hoping that work can start on the next version now. Currently have ideas for some features such as:
  • Different database backends
  • Play, pause, skip tracks etc...
  • Create a GUI to control iTunes remotely.