Semantic video platform for Ruby on Rails
Ruby JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Link TV Platform

Link TV Platform is a Rails Engine for Ruby on Rails 2.3. The platform provides a framework for creating rich video sites, integrating Semantic Web technologies and content discovery services.


  • Flexible video support
    • Manual video creation or import from MRSS
    • Streaming via Amazon CloudFront, progressive fallback
    • YouTube video support
    • HTML5 video playback for non-Flash environments
  • Content analysis & curation
    • Distinct video segments/chapters
    • Auto-suggested topics via video transcript analysis
    • Topic association relevance weighting
  • Semantic Web features
    • Linked Data URIs for topics and videos
    • Contextual RDFa markup
    • Topic owl:sameAs links to Freebase and DBpedia
    • RDF/XML endpoints
  • Related content discovery
    • Articles
    • Videos
    • Actions
  • Search & API
    • Fulltext search powered by Apache Solr
    • Available JSON/XML API


Getting Started

Install the plugin into an existing or newly-created Rails application (requires git).

script/plugin install git://

Edit your application's config/environment.rb file to include the plugin initializers.

require "#{RAILS_ROOT}/vendor/plugins/linktv_platform/config/environment.rb" do |config|
	Linktv::Platform::initializer config

Set required variables in config/environments/{environment}.rb (see notes in plugin environment.rb).


Update application_controller.rb.

class ApplicationController < ActionController::Base
	include Linktv::Platform::PlatformController

Update your application's config/routes.rb file to include support for "pages" module (just before the last 'end' statement).

# Lowest priority fall-through route is for site-defined matches to Page records
# Note: this will catch everything, so 404 handler is within
map.connect '*path', :controller => 'pages', :action => 'show', :conditions => {:method => :get}

Install required gems.

$ (sudo) rake gems:install

Install required plugins.

$ script/plugin install git://
$ script/plugin install git://
$ script/plugin install git://
$ script/plugin install git:// -r rails-2.3
$ script/plugin install git:// -r rails-2.3

Initialize delayed_job.

$ script/generate delayed_job

Initialize Sunspot/Solr.

$ script/generate sunspot

Include Sunspot tasks in your application's Rakefile.

require 'sunspot/rails/tasks'

Initialize Link TV Platform: create media directories, symlink assets.

$ rake linktv_platform:init

Create a database, if necessary. Edit your application's config/database.yml file (see database.example.yml).

  adapter: mysql
  database: linktv_platform_development
  encoding: utf8
  username: dbDevUser
  password: dbDevPass

Run database migrations and seed default data.

$ rake db:migrate
$ rake linktv_platform:db:seed:all

Edit the application configuration, including API keys, in config/application.yml. See the Configuration page in the wiki for details.

Start Sunspot/Solr. See the Sunspot Wiki for more info on running Solr in production.

$ RAILS_ENV={environment} rake sunspot:solr:start

Build Solr search index.

$ RAILS_ENV={environment} rake linktv_platform:sunspot:reindex

Start delayed_job background process.

$ RAILS_ENV=#{rails_env} script/delayed_job start

Start the server (using Mongrel, Passenger, etc.). Be sure to remove the default public/index.html file.


FlowPlayer, a GPL-licensed Flash video player, is used in the video admin modules. The FlowPlayer package is not included with this distribution, due to GPL restrictions. Links to externally-hosted resources are provided in the default configuration.

It is highly recommended that you replace these external links with a local installation of FlowPlayer. The example below shows an excerpt from the application.yml configuration file, with FlowPlayer installed locally.

      flowplayer_swf: /assets/flowplayer/flowplayer-3.2.7.swf
      flowplayer_js: /assets/flowplayer/flowplayer-3.2.6.min.js
      flowplayer_rtmp: /assets/flowplayer/flowplayer.rtmp-3.2.3.swf


Authentication and authorization services are not enabled by default. The administration modules may be secured using HTTP authentication, or via the included Authorization module (based on AuthLogic). Of course, you are free to provide your own auth system, as well.

See the Authorization wiki page for details.

Optional Installs

Exception Logger


VideoJS enhances HTML5 video with improved cross-browser compatibility and UI skinning. Download and install VideoJS into your application's public directory (public/video-js, in this example). Include the JavaScript and CSS file in player partial (haml):

- content_for :head do
  = stylesheet_link_tag "/video-js/video-js.css"
  = javascript_include_tag "/video-js/video.js"


  • The platform is tested with specific gem and/or plugin versions as specified in the configuration. Use of different versions may cause difficulties.

Third-party APIs

Link TV Platform leverages APIs from the following providers. See the API Providers page for API key and attribution requirements.


Developed by Definition LLC

Produced by Link Media, Inc.

TinyMCE, an LGPL-licensed project, is bundled with this distribution. Source code available at

Administration theme by web-app-theme.

GeoIP lookup service provided by YQL.


Distributed under the MIT License, copyright (c) 2011 Definition LLC. A project of Link Media, Inc.