This course will become read-only in the near future. Tell us at community.p2pu.org if that is a problem.

Collecting and Moving Video Metadata [Dec. 16, 2012, 6:17 a.m.]



Video Metadata can move in mysterious ways. Here are some of the ways it can move and be collected.

  • as a part of the video files
  • as external files
  • as part of a repository system

As we saw in one of the introductory sections, there are a number of standard metadata fields that can be included in most video containers.

Metadata in external files

Subtitles are often included in .srt files. This is common with video containers that don't support subtitle streams. Possibly most commonly seen with avi files in with torrents.

Metadata as part of a repository system

Systems like Pandora that

Screen cast for Pad.ma

http://camputer.org/tmp/screencast_webm/screenCast_ffmpeg_1.webm

There is often no clear way of moving this metadata from one repository to another.

Google RDF system?

ARe people using it in the wild?

One way of moving this metadata is Media RSS - So here's a hands on example of it in use.

Hands On - Drupal + Feeds for MRSS

As part of the Open Video Forum, there was a presentation of the aims of the transmission.cc website. Part of the aim of that website was to act as an aggregator and searchable archive of video metadata coming in from various types of RSS, Media RSS (MRSS) feeds. MRSS adds additional useful infomation to RSS feeds about video and audio files, including filesize, bitrate, width, heigth etc.

<media:content
  url="http://www.foo.com/movie.mov"
  fileSize="12216320"
  type="video/quicktime"
  medium="video"
  isDefault="true"
  expression="full"
  bitrate="128"
  framerate="25"
  samplingrate="44.1"
  channels="2"
  duration="185"
  height="200"
  width="300"
  lang="en" />

There is more information on the Media RSS specification here - http://www.rssboard.org/media-rss

Developer/installer overview for transmission aggregator

Transmission used the Drupal content management system as base to build on and extended the functionality already present in existing Drupal modules. All the code is standard Drupal and contrib with a couple of important additions.

The feeds are pulled with the http://drupal.org/project/feeds module. Feeds makes use of the simplepie parser to interperate the incoming feeds.  Simplepie parses MRSS out of the box but feeds doesn't know what to do with this data.

To solve this you can use an extention module to read the MRSS output coming from the simplepie parser. This module is checked out as a submodule but is also now in a sandbox on drupal.org https://drupal.org/sandbox/ekes/1867408

In the transmission.cc site there are two content types for feeds: 'MRSS feed' and  'Video'. Posting a new 'MRSS feed' with the URL of the RSS feed adds that to the list of feeds that are pulled. Items in the feed are created as 'Video' nodes.

The node types, and the feeds settings to use them, and to map which parts of a feed item to which parts of the node can be set up in the Drupal interface of the feeds module.

This screen shot shows you a 'mapping' of a feed to the content pieces of your Drupal website.

To make the site itself output MRSS in the RSS feed there is another module, again included but now also in a sandbox. https://drupal.org/node/1867416

The complete transmission.cc code can be found at:

  git://git.iskra.net/drupal/projects/tx

This is a git repository with submodules.
If you're on the command line to get the rest of the code you then type (in the git repository you just pulled):

  $ git submodule init
  $ git submodule update


If you're using your favourite gui there should be a way of getting all the submodules.
 

If you want to replicate the settings for mapping the MRSS feedsl, they are stored in a 'feature' [this is a way of storing settings in Drupal, the main module is http://drupal.org/project/features ].

The relevant feature for this is the one found in 'tx/modules/features/mrss_feeds'