Module: KalturaFu::Entry
- Defined in:
- lib/kaltura_fu/entry.rb,
lib/kaltura_fu.rb,
lib/kaltura_fu/entry/flavor.rb,
lib/kaltura_fu/entry/metadata.rb,
lib/kaltura_fu/entry/class_methods.rb,
lib/kaltura_fu/entry/instance_methods.rb,
lib/kaltura_fu/entry/metadata/class_methods.rb,
lib/kaltura_fu/entry/metadata/class_and_instance_methods.rb
Overview
The entry module provides a slightly more intuitive interface to the Kaltura media service. It determines what retrieval and setting actions you can perform based upon the version of the Kaltura-Ruby library using reflection. This allows Kaltura_Fu to be a bit more future proof than the Kaltura API client itself! The tradeoff is that getting/adding/setting attributes are defined dynamically. The current behavior is that the first call to a dynamic method will then define all of Kaltura’s media entries methods. This allows the module to be slightly lighter weight in the event that it is included in a class but never used, and faster than using method_missing lookups for 100% of the dynamic methods. The first call will be slower though, as it generates numerous other methods.
Usage
The entry module is intended to be used to link Rails Models to Kaltura MediaEntry’s.
However, you should not perform these actions during a web application request. Doing so will slow down your request unecessarily. There is nearly nothing gained from adding a round trip to your Kaltura server to make an update synchronus. Instead, this module should mostly be used in processing a background request from an observer.
Uploading to Kaltura
The entry module provides convienance to uploading directly to your installation of Kaltura. For your web application, there are two Kaltura flash widgets that perform a much better job of uploading files though. This functionality has been used in production environments that use lecture capture. A video file is placed in a folder, a script picks the file up, and then uploads it into Kaltura.
The Kaltura API supports uploading media from files, URL’s, and also has a batch action.
The implementation of Kaltura Fu currently ignores the URL and batch methods, instead focusing on file uploading.
Getting, Setting, and Adding Metadata
The entry module provides an easy mean to retrieve the current state and modify a Kaltura entry. For metadata fields that act as a list of objects, it also provides an easy way to append values onto the list. It uses get_ and set_ instead of the more common Ruby practice of using just the attribute and attribute= so that you can include this module in your model without conflict. Also, when you are performing actions on the category fields, the module is making sure these are available in the KMC by calling Kaltura’s Category service.
Checking the Status of an Entry
One unfortunate aspect of the Kaltura API is that an entry will report it’s status as “ready” while flavors are still encoding. When you embed the entry on a webpage, it will render an error “Media is currently converting”. The only solution is to instead check the status of each flavor instead to ensure total readiness.
Retrieving Status About the Source Video
Occasionally, you need to interact with the original video in some form or another with Kaltura. One production situation I have encountered in the past is maintaining a copy of the source video on a large data store seperate from Kaltura. It is extremely difficult to work with the download URL that Kaltura provides for that.
Defined Under Namespace
Modules: ClassMethods, Flavor, InstanceMethods, Metadata
Class Method Summary collapse
Class Method Details
.included(base) ⇒ Object
96 97 98 99 100 101 102 103 104 |
# File 'lib/kaltura_fu/entry.rb', line 96 def self.included(base) base.extend ClassMethods base.class_eval do include Metadata include InstanceMethods include Flavor end super end |