Changes for Cinecast popcorn-port
authorveltr
Fri, 06 Apr 2012 16:49:32 +0200
branchpopcorn-port
changeset 842 4ae2247a59f4
parent 841 8da49ff273e0
child 843 75ba66457232
child 844 598133ec3344
Changes for Cinecast
sbin/build/client.xml
src/css/LdtPlayer.css
src/css/imgs/player-sprites.png
src/js/data.js
src/js/defaults.js
src/js/init.js
src/js/layout.js
src/js/main.js
src/js/players/player.allocine.js
src/js/serializers/JSONSerializer.js
src/js/site.js.templ
src/js/widgets.js
src/js/widgets/annotationsListWidget.js
src/js/widgets/annotationsWidget.js
src/js/widgets/arrowWidget.js
src/js/widgets/createAnnotationWidget.js
src/js/widgets/playerWidget.js
src/js/widgets/polemicWidget.js
src/js/widgets/segmentsWidget.js
src/js/widgets/sliderWidget.js
src/js/widgets/sparklineWidget.js
src/js/widgets/stackGraphWidget.js
src/js/widgets/tweetsWidget.js
src/templates/annotationsListWidget.html
src/templates/createAnnotationWidget.html
test/integration/allocine_dossier_independant/allocine_test/AcPlayer_v3.0.swf
test/integration/allocine_dossier_independant/allocine_test/bamako.json
test/integration/allocine_dossier_independant/allocine_test/data_cinecast.xml
test/integration/allocine_dossier_independant/css/LdtPlayer.css
test/integration/allocine_dossier_independant/js/LdtPlayer-release.js
test/integration/allocine_dossier_independant/json_examples/annotations.json
test/integration/allocine_dossier_independant/json_examples/extracts.json
test/integration/allocine_dossier_independant/json_examples/media.json
test/integration/allocine_dossier_independant/json_examples/movie32.json
test/integration/allocine_dossier_independant/json_examples/player.json
test/integration/allocine_dossier_independant/json_examples/posted_annotations.json
test/integration/allocine_dossier_independant/polemic-allocine.htm
test/integration/allocine_dossier_independant/test-allocine.htm
test/integration/allocine_dossier_independant/test-vodkaster.htm
test/integration/polemic.htm
--- a/sbin/build/client.xml	Tue Apr 03 20:30:12 2012 +0200
+++ b/sbin/build/client.xml	Fri Apr 06 16:49:32 2012 +0200
@@ -59,7 +59,7 @@
     	<filelist dir="../../build" files="compiled_templates.js" />
       
       <!-- core files -->
-    	<filelist dir="../../src/js" files="utils.js pop.js data.js site.js widgets.js modules.js layout.js init.js i18n.js" />
+    	<filelist dir="../../src/js" files="utils.js pop.js data.js defaults.js widgets.js modules.js layout.js init.js i18n.js" />
 
       <!-- players -->
 			<fileset dir="../../src/js/players" casesensitive="yes">
--- a/src/css/LdtPlayer.css	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/css/LdtPlayer.css	Fri Apr 06 16:49:32 2012 +0200
@@ -329,12 +329,8 @@
     cursor: pointer;
 }
 
-.Ldt-Ctrl-Volume-Cursor:hover {
-     background: #cccccc;
-}
-
-.Ldt-Ctrl-Volume-Cursor.ui-draggable-dragging {
-    background: #999999;
+.Ldt-Ctrl-Volume-Control:hover .Ldt-Ctrl-Volume-Cursor {
+     background: #F7268E;
 }
 
 .Ldt-cleaner {
@@ -900,7 +896,7 @@
 }
 
 .Ldt-AnnotationsList-highlight {
-    background: #cc80ff;
+    background: #F7268E; color: #ffffff;
 }
 
 .Ldt-AnnotationsListWidget a {
@@ -942,7 +938,11 @@
 }
 
 li.Ldt-AnnotationsList-Tag-Li {
-    float: left; margin: 2px; background: #cc0066; color: #fff; padding: 4px;
+    float: left; margin: 2px; background: #0068c4; color: #fff; padding: 4px;
+}
+
+li.Ldt-AnnotationsList-Tag-Li:hover {
+    background: #F7268E;
 }
 
 /* Tagcloud */
Binary file src/css/imgs/player-sprites.png has changed
--- a/src/js/data.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/data.js	Fri Apr 06 16:49:32 2012 +0200
@@ -12,15 +12,16 @@
   this._callbacks = {};
 };
 
-IriSP.DataLoader.prototype.get = function(url, callback) {
-
-  var base_url = url.split("&")[0]
+IriSP.DataLoader.prototype.get = function(url, callback, force_reload) {
+  var base_url = url.split("&")[0];
+  if (typeof force_reload != "undefined" && force_reload && this._cache.hasOwnProperty(base_url)) {
+      delete this._cache[base_url]
+  }
   if (this._cache.hasOwnProperty(base_url)) {
     callback(this._cache[base_url]);
   } else {  
     if (!this._callbacks.hasOwnProperty(base_url)) {
-      this._callbacks[base_url] = [];
-      this._callbacks[base_url].push(callback);   
+      this._callbacks[base_url] = [callback];
       /* we need a closure because this gets lost when it's called back */
   
       // uncomment you don't want to use caching.
@@ -33,6 +34,7 @@
                   for (i = 0; i < this._callbacks[base_url].length; i++) {
                     this._callbacks[base_url][i](this._cache[base_url]);                                  
                   }
+                  delete this._callbacks[base_url];
       };
       
       /* automagically choose between json and jsonp */
@@ -70,8 +72,11 @@
 IriSP.Serializer.prototype.currentMedia = function() {  
 };
 
-IriSP.Serializer.prototype.sync = function(callback) {  
-  callback.call(this, this._data);  
+IriSP.Serializer.prototype.getDuration = function() {  
+};
+
+IriSP.Serializer.prototype.sync = function(callback) {
+  this._DataLoader.get(this._url, callback, force_refresh);
 };
 
 IriSP.SerializerFactory = function(DataLoader) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/js/defaults.js	Fri Apr 06 16:49:32 2012 +0200
@@ -0,0 +1,140 @@
+IriSP.language = 'en';
+
+IriSP.libFiles = {
+    defaultDir : "js/libs/",
+    inDefaultDir : {
+        jQuery : "jquery.min.js",
+        jQueryUI : "jquery-ui.min.js",
+        jQueryToolTip : "jquery.tools.min.js",
+        swfObject : "swfobject.js",
+        cssjQueryUI : "jquery-ui.css",
+        popcorn : "popcorn.js",
+        jwplayer : "jwplayer.js",
+        raphael : "raphael.js",
+        "popcorn.mediafragment" : "popcorn.mediafragment.js",
+        "popcorn.code" : "popcorn.code.js",
+        "popcorn.jwplayer" : "popcorn.jwplayer.js",
+        "popcorn.youtube" : "popcorn.youtube.js",
+        "tracemanager" : "tracemanager.js"
+    },
+    locations : {
+        // use to define locations outside defautl_dir
+    },
+    cdn : {
+        jQueryUI : "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.17/jquery-ui.js",
+        jQueryToolTip : "http://cdn.jquerytools.org/1.2.4/all/jquery.tools.min.js",
+        swfObject : "http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js",
+        cssjQueryUI : "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css"
+    },
+    useCdn : false
+}
+
+IriSP.widgetsDefaults = {
+    "LayoutManager" : {
+        spacer_div_height : 0
+    },
+    "PlayerWidget" : {
+        
+    },
+    "AnnotationsWidget" : {
+        "share_text" : "I'm watching "
+    },
+    "TweetsWidget" : {
+        default_profile_picture : "https://si0.twimg.com/sticky/default_profile_images/default_profile_1_normal.png",
+        tweet_display_period : 10000 // how long do we show a tweet ?
+    },
+    "SliderWidget" : {
+        minimize_period : 850 // how long does the slider stays maximized after the user leaves the zone ?
+    },
+    "SegmentsWidget" : {
+        cinecast_version : false
+    },
+    "createAnnotationWidget" : {
+        tags : [
+            {
+                "id" : "digitalstudies",
+                "meta" : {
+                    "description" : "#digital-studies"
+                }
+            },
+            {
+                "id" : "amateur",
+                "meta" : {
+                    "description" : "#amateur"
+                },
+            }
+        ],
+        remote_tags : false,
+        random_tags : false,
+        show_from_field : false,
+        polemic_mode : true, /* enable polemics ? */
+        polemics : [{
+            "className" : "positive",
+            "keyword" : "++"
+        }, {
+            "className" : "negative",
+            "keyword" : "--"
+        }, {
+            "className" : "reference",
+            "keyword" : "=="
+        }, {
+            "className" : "question",
+            "keyword" : "??"
+        }],
+        cinecast_version : false, /* put to false to enable the platform version, true for the festival cinecast one. */
+
+        /* where does the widget PUT the annotations - this is a mustache template. id refers to the id of the media ans is filled
+         by the widget.
+         */
+        api_endpoint_template : "", // platform_url + "/ldtplatform/api/ldt/annotations/{{id}}.json",
+        api_method : "PUT"
+    },
+    "SparklineWidget" : {
+       lineColor : "#7492b4",
+       fillColor : "#aeaeb8",
+       lineWidth : 2
+    },
+    "AnnotationsListWidget" : {
+        ajax_mode : true, /* use ajax to get information about the annotations.
+         if set to false, only search in the annotations for the
+         current project. */
+        /* the platform generates some funky urls. We replace them afterwards to point to the
+         correct place - this setting will probably be overwritten by the platform
+         implementers.
+         Note that the player has to replace the variables between {{ and }} by its own values.
+         */
+        ajax_url : "", //platform_url + "/ldtplatform/api/ldt/segments/{{media}}/{{begin}}/{{end}}",
+        ajax_granularity : 10000, /* how much ms should we look before and after the current timecode */
+        default_thumbnail : "http://ldt.iri.centrepompidou.fr/static/site/ldt/css/imgs/video_sequence.png",
+        project_url : "", //platform_url + "/ldtplatform/ldt/front/player/"
+        /* the beginning of a link to the new front */
+        cinecast_version : false,
+        refresh_interval : 10000
+    },
+    "StackGraphWidget" : {
+         defaultcolor : "#585858",
+         tags : [
+            {
+                "keywords" : [ "++" ],
+                "description" : "positif",
+                "color" : "#1D973D"
+            },
+            {
+                "keywords" : [ "--" ],
+                "description" : "negatif",
+                "color" : "#CE0A15"
+            },
+            {
+                "keywords" : [ "==" ],
+                "description" : "reference",
+                "color" : "#C5A62D"  
+            },
+            {
+                "keywords" : [ "??" ],
+                "description" : "question",
+                "color" : "#036AAE"
+            }
+        ],
+        streamgraph : false
+    }
+}
\ No newline at end of file
--- a/src/js/init.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/init.js	Fri Apr 06 16:49:32 2012 +0200
@@ -240,54 +240,18 @@
     return widget;
 };
 
-/** Go through the defaults to set a reasonable value */
-IriSP.configureDefaults = function(libdir, platform_url) {
-  /* the defaults configuration is messy and complicated. There are two things to know :
-     - we want to allow overwriting of defaults - that's why we have IriSP.widgetDefaults
-       and IriSP.defaults.widgetDefaults. The first is filled by the embedder and then fleshed out
-       with the contents of the first. We use underscore.defaults for that, but there's one problem with
-       this function : it doesn't work recursively.
-     - we need to compute some values at runtime instead of at compile time
-  */
-    
-  IriSP.lib = IriSP.underscore.defaults(IriSP.lib, IriSP.defaults.lib(libdir));
-  
-  /* get the factory defaults for the widgets and merge them with the default the user
-     may have defined 
-  */
-  var factory_defaults = IriSP.defaults.widgetsDefaults(platform_url);
-  for(var widget in factory_defaults) {
-  
-      /* create the object if it doesn't exists */
-      if (IriSP.null_or_undefined(IriSP.widgetsDefaults[widget]))
-        IriSP.widgetsDefaults[widget] = {};
-        
-      IriSP.widgetsDefaults[widget] = IriSP.underscore.defaults(IriSP.widgetsDefaults[widget], factory_defaults[widget]);
-  }
-  
-  IriSP.paths = IriSP.underscore.defaults(IriSP.paths, IriSP.defaults.paths);
-  IriSP.default_templates_vars = IriSP.underscore.defaults(IriSP.default_templates_vars, 
-                                       IriSP.defaults.default_templates_vars());
-
-  if (IriSP.null_or_undefined(IriSP.user))
-    IriSP.user = {};
-  
-  IriSP.user = IriSP.underscore.defaults(IriSP.user, IriSP.defaults.user());
-};
-
 /** single point of entry for the metadataplayer */
-IriSP.initPlayer = function(config, metadata_url, libdir, platform_url) {
+IriSP.initPlayer = function(config, metadata_url) {
     document.getElementById(config.gui.container).innerHTML = IriSP.templToHTML(IriSP.loading_template, config.gui);
-    IriSP.configureDefaults(libdir, platform_url);
-    IriSP.loadLibs(IriSP.lib, config, metadata_url,
+    IriSP.loadLibs(config, metadata_url,
       function() {   
               
               var layoutManager = new IriSP.LayoutManager(config.gui);
 
               var pop = IriSP.configurePopcorn(layoutManager, config.player);
               
-              var widgets = IriSP.configureWidgets(pop, layoutManager, config.gui); 
-              var modules = IriSP.configureModules(pop, config.modules); 
+              IriSP._widgets = IriSP.configureWidgets(pop, layoutManager, config.gui); 
+              IriSP._modules = IriSP.configureModules(pop, config.modules); 
               IriSP.jQuery('#Ldt-loader').detach();
       });
 };
\ No newline at end of file
--- a/src/js/layout.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/layout.js	Fri Apr 06 16:49:32 2012 +0200
@@ -64,7 +64,7 @@
     this._widgets.push([widgetName, newDiv]);    
 
     var divTempl = "<div id='{{id}}' style='width: {{width}}px; position: relative; clear: both;'></div";
-    var spacerTempl = "<div id='{{spacer_id}}' style='width: {{width}}px; position: relative; height: {{spacer_div_height}};'></div";
+    var spacerTempl = "<div id='{{spacer_id}}' style='width: {{width}}px; position: relative; height: {{spacer_div_height}}px;'></div";
     
     var divCode = Mustache.to_html(divTempl, {id: newDiv, width: this._width});
     var spacerCode = Mustache.to_html(spacerTempl, {spacer_id: spacerDiv, width: this._width,
--- a/src/js/main.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/main.js	Fri Apr 06 16:49:32 2012 +0200
@@ -1,5 +1,5 @@
 /* main file */
-
+// Why is it called main ? It only loads the libs !
 
 if ( window.IriSP === undefined && window.__IriSP === undefined ) { 
   /**
@@ -19,23 +19,39 @@
 IriSP._ = window._.noConflict();
 IriSP.underscore = IriSP._;
 
-IriSP.loadLibs = function( libs, config, metadata_url, callback ) {
+IriSP.getLib = function(lib) {
+    return (
+        IriSP.libFiles.useCdn && typeof IriSP.libFiles.cdn[lib] == "string"
+        ? IriSP.libFiles.cdn[lib]
+        : (
+            typeof IriSP.libFiles.locations[lib] == "string"
+            ? IriSP.libFiles.locations[lib]
+            : (
+                typeof IriSP.libFiles.inDefaultDir[lib] == "string"
+                ? IriSP.libFiles.defaultDir + IriSP.libFiles.inDefaultDir[lib]
+                : null
+            )
+        )
+    )
+}
+
+IriSP.loadLibs = function( config, metadata_url, callback ) {
     // Localize jQuery variable
 		IriSP.jQuery = null;
-    var $L = $LAB.script(libs.jQuery).script(libs.swfObject).wait()
-                .script(libs.jQueryUI);
+    var $L = $LAB.script(IriSP.getLib("jQuery")).script(IriSP.getLib("swfObject")).wait()
+                .script(IriSP.getLib("jQueryUI"));
                                    
     if (config.player.type === "jwplayer" || config.player.type === "allocine") {
       // load our popcorn.js lookalike
-      $L.script(libs.jwplayer);
+      $L.script(IriSP.getLib("jwplayer"));
     } else {
       // load the real popcorn
-      $L.script(libs.popcorn).script(libs["popcorn.code"]);
+      $L.script(IriSP.getLib("popcorn")).script(IriSP.getLib("popcorn.code"));
       if (config.player.type === "youtube") {
-        $L.script(libs["popcorn.youtube"]);
+        $L.script(IriSP.getLib("popcorn.youtube"));
       } 
       if (config.player.type === "vimeo")
-        $L.script(libs["popcorn.vimeo"]);
+        $L.script(IriSP.getLib("popcorn.vimeo"));
       
       /* do nothing for html5 */
     }       
@@ -45,10 +61,10 @@
       if (config.gui.widgets[idx].type === "PolemicWidget" ||
           config.gui.widgets[idx].type === "StackGraphWidget" ||
           config.gui.widgets[idx].type === "SparklineWidget") {        
-        $L.script(libs.raphael);
+        $L.script(IriSP.getLib("raphael"));
       }
       if (config.gui.widgets[idx].type === "TraceWidget") {
-          $L.script(libs.tracemanager)
+          $L.script(IriSP.getLib("tracemanager"))
       }
     }
     
@@ -56,7 +72,7 @@
     /*
     for (var idx in config.modules) {
       if (config.modules[idx].type === "PolemicWidget")
-        $L.script(libs.raphaelJs);
+        $L.script(IriSP.getLib("raphaelJs"));
     }
     */
 
@@ -66,7 +82,7 @@
       var css_link_jquery = IriSP.jQuery( "<link>", { 
         rel: "stylesheet", 
         type: "text/css", 
-        href: libs.cssjQueryUI,
+        href: IriSP.getLib("cssjQueryUI"),
         'class': "dynamic_css"
       } );
       var css_link_custom = IriSP.jQuery( "<link>", { 
--- a/src/js/players/player.allocine.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/players/player.allocine.js	Fri Apr 06 16:49:32 2012 +0200
@@ -41,14 +41,26 @@
         ? options.directVideoPath
         : IriSP.get_aliased(IriSP.__jsonMetadata["medias"][0], ["href","url"])
     );
+    var _flashVars = {
+        "streamFMS" : true,
+        "adVast" : false,
+        "lg" : "fr_cinecast",
+        "autoPlay" : options.autoPlay,
+        "directVideoTitle" : "",
+        "urlAcData" : options.urlAcData,
+        "directVideoPath" : _videoUrl,
+        "host" : "http://allocine.fr"
+    }
     
-    var fv = "streamFMS=true&adVast=false&lg=fr_cinecast&autoPlay=" + options.autoPlay + "&directVideoTitle=&urlAcData=" + options.urlAcData + "&directVideoPath=" + _videoUrl + "&host=http://allocine.fr";
-//    console.log("fv = " + fv);
+    if (typeof IriSP.__jsonMetadata["medias"][0].meta == "object" && typeof IriSP.__jsonMetadata["medias"][0].meta.subtitles == "string") {
+        _flashVars.subTitlePath = IriSP.__jsonMetadata["medias"][0].meta.subtitles;
+    }
     
+
     var params = {
         "allowScriptAccess" : "always",
         "wmode": "opaque",
-        "flashvars" : fv,
+        "flashvars" : IriSP.jQuery.param(_flashVars),
         "allowfullscreen" : true
     };
     var atts = {
--- a/src/js/serializers/JSONSerializer.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/serializers/JSONSerializer.js	Fri Apr 06 16:49:32 2012 +0200
@@ -21,7 +21,7 @@
 /** load JSON-cinelab data and also sort the annotations by start time
     @param callback function to call when the data is ready.
  */
-IriSP.JSONSerializer.prototype.sync = function(callback) {
+IriSP.JSONSerializer.prototype.sync = function(callback, force_refresh) {
   /* we don't have to do much because jQuery handles json for us */
 
   var self = this;
@@ -43,15 +43,23 @@
 	  }     
       callback(data);      
   };
-  
-  this._DataLoader.get(this._url, fn);
+  this._DataLoader.get(this._url, fn, force_refresh);
 };
 
 /** @return the metadata about the media being read FIXME: always return the first media. */
 IriSP.JSONSerializer.prototype.currentMedia = function() {  
-  return this._data.medias[0]; /* FIXME: don't hardcode it */
+  return (typeof this._data.medias == "object" && this._data.medias.length) ? this._data.medias[0] : IriSP.__jsonMetadata.medias[0];
 };
 
+IriSP.JSONSerializer.prototype.getDuration = function() {
+    var _m = this.currentMedia();
+    if (_m === null || typeof _m.meta == "undefined") {
+        return 0;
+    }
+    return +(IriSP.get_aliased(_m.meta, ["dc:duration", "duration"]) || 0);
+}
+
+
 /** searches for an annotation which matches title, description and keyword 
    "" matches any field. 
    Note: it ignores tweets.
@@ -432,8 +440,4 @@
     val = this.getId("Publ");
     
   return val;
-};
-
-IriSP.JSONSerializer.prototype.getDuration = function() {
-    return +(IriSP.get_aliased(this.currentMedia().meta, ["dc:duration", "duration"]) || 0);
-}
+};
\ No newline at end of file
--- a/src/js/site.js.templ	Tue Apr 03 20:30:12 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-/* site.js - all our site-dependent config : player chrome, cdn locations, etc...*/
-
-IriSP.defaults = {};
-
-/* these objects are filled by configureDefaults. The function doesn't overwrite 
-   defaults that were originally defined by the user.
-*/
-IriSP.lib = {};
-
-/* We need to define those so that the individual settings can be overwritten */
-IriSP.widgetsDefaults = {};
-
-IriSP.paths = {};
-
-IriSP.libdir = "../src/js/libs/";
-IriSP.jwplayer_swf_path = "../test/libs/player.swf";
-IriSP.platform_url = "http://localhost/pf";
-IriSP.default_templates_vars = { };
-
-IriSP.language = 'en';
-
-/** ugly ugly ugly ugly - returns an object defining 
-    the paths to the libs
-    We need it that way cause it's called at runtime by
-    IriSP.configureDefaults.
-*/   
-IriSP.defaults.lib = function(libdir) {
-  if (IriSP.null_or_undefined(libdir))
-    libdir = IriSP.libdir;
-  
-  return { 
-//      jQuery : "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js",
-    jQuery : libdir + "jquery.min.js",
-//      jQueryUI : "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.17/jquery-ui.js",
-    jQueryUI : libdir + "jquery-ui.min.js",
-//      jQueryToolTip : "http://cdn.jquerytools.org/1.2.4/all/jquery.tools.min.js",
-    jQueryToolTip : libdir + "jquery.tools.min.js",
-//      swfObject : "http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js",
-    swfObject : libdir + "swfobject.js",
-//      cssjQueryUI : "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css",
-    cssjQueryUI : libdir + "jquery-ui.css",
-      popcorn : libdir + "popcorn.js",
-      jwplayer : libdir + "jwplayer.js",
-      popcornReplacement: libdir + "pop.js",
-      raphael: libdir + "raphael.js",
-      jquery_sparkline: libdir + "jquery.sparkline.js",
-      "popcorn.mediafragment" : libdir + "popcorn.mediafragment.js",
-      "popcorn.code" : libdir + "popcorn.code.js",
-      "popcorn.jwplayer": libdir + "popcorn.jwplayer.js",
-      "popcorn.youtube": libdir + "popcorn.youtube.js",
-      "tracemanager": libdir + "tracemanager.js"
-  };
-};
-
-//Configuration for the player and utility functions.
-// No need to have them configured at runtime
-IriSP.config = {};
-
-IriSP.config.shortener = {
-  // function to call to shorten an url.
-  //shortening_function : IriSP.platform_shorten_url
-};
-
-IriSP.defaults.widgetsDefaults = function(platform_url) { 
-  if (IriSP.null_or_undefined(platform_url))
-    platform_url = IriSP.platform_url;
-  
-  return {
-    "LayoutManager" : {spacer_div_height : "0px" },
-    "PlayerWidget" : {},
-    "AnnotationsWidget": {
-      "share_text" : "I'm watching ",     
-      "fb_link" : "http://www.facebook.com/share.php?u=",
-      "tw_link" : "http://twitter.com/home?status=",
-      "gplus_link" : ""
-      },
-    
-    "TweetsWidget" : {
-        default_profile_picture : "https://si0.twimg.com/sticky/default_profile_images/default_profile_1_normal.png",
-        tweet_display_period: 10000 // how long do we show a tweet ?
-        
-    },
-    "SliderWidget" : {
-        minimize_period: 850 // how long does the slider stays maximized after the user leaves the zone ?
-    },
-    "createAnnotationWidget" : {
-        keywords: ["#faux-raccord", "#mot-clef"],
-        polemic_mode: true, /* enable polemics ? */
-        /* polemics - the corresponding class names defined in the css should be for instance :
-           Ldt-createAnnotation-polemic-plusplus for plusplus
-           Ldt-createAnnotation-polemic-equalequal for equalequal, etc.
-        */
-        polemics: [ { "className" : "positive", "keyword" : "++" }, { "className" : "negative", "keyword" : "--" }, { "className" : "reference", "keyword" : "==" }, { "className" : "question", "keyword" : "??" } ],
-        cinecast_version: true, /* put to false to enable the platform version, true for the festival cinecast one. */
-        
-        /* where does the widget PUT the annotations - this is a mustache template. id refers to the id of the media ans is filled
-           by the widget. 
-        */
-        api_endpoint_template: platform_url + "/ldtplatform/api/ldt/annotations/{{id}}.json",
-        api_method: "PUT"
-    },
-    "SparklineWidget" : {
-        column_width: 10 // the width of a column in pixels.
-    },
-    "Main" : {
-        autoplay: true
-    },
-    "AnnotationsListWidget" : {
-        ajax_mode: true, /* use ajax to get information about the annotations.
-                           if set to false, only search in the annotations for the
-                           current project. */
-        /* the platform generates some funky urls. We replace them afterwards to point to the
-           correct place - this setting will probably be overwritten by the platform 
-           implementers.
-           Note that the player has to replace the variables between {{ and }} by its own values.
-        */
-        ajax_url: platform_url + "/ldtplatform/api/ldt/segments/{{media}}/{{begin}}/{{end}}", 
-        
-        ajax_granularity: 10000, /* how much ms should we look before and after the
-                                   current timecode */
-        
-        project_url: platform_url + "/ldtplatform/ldt/front/player/" /* the beginning 
-                                                                        of a link to the
-                                                                        new front */
-    } 
-  };
-};
-
-/*
-Override this if you want to change the info the player receives about the user.
-It's typically overrided in server-side templates with user-specific data.
-*/
-IriSP.defaults.user = function() { return {
-      "name" : "Anonymous user",
-      "avatar" : IriSP.paths.imgs + "/user_default_icon.png"
-    }
-};
-
-
-IriSP.defaults.paths = {
-//  "imgs": "/tweetlive/res/metadataplayer/src/css/imgs"
-  "imgs": "/mdp/src/css/imgs"
-};
-
-IriSP.defaults.default_templates_vars = function() { 
-  return {
-  "img_dir" : IriSP.paths.imgs 
-  };
-}
-
--- a/src/js/widgets.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets.js	Fri Apr 06 16:49:32 2012 +0200
@@ -57,24 +57,28 @@
       this.selector.attr("widget-type", this._config.type);
   }
   
+  // Parsing Widget Defaults
+  var _this = this;
+  
+  if (typeof config.type == "string" && typeof IriSP.widgetsDefaults[config.type] == "object") {
+      IriSP._(IriSP.widgetsDefaults[config.type]).each(function(_v, _k) {
+          if (typeof config[_k] != "undefined") {
+              _this[_k] = config[_k];
+          } else {
+              _this[_k] = _v;
+          }
+      });
+  }
+  
 };
 
-// This functions checks for configuration options
 
-IriSP.Widget.prototype.checkOption = function(_name, _default) {
-    this[_name] = (
-        typeof this._config[_name] != "undefined"
-        ? this._config[_name]
-        : (
-            (typeof IriSP.widgetsDefaults[this._config.type] != "undefined" && IriSP.widgetsDefaults[this._config.type][_name] != "undefined")
-            ? IriSP.widgetsDefaults[this._config.type][_name]
-            : (
-                typeof _default != "undefined"
-                ? _default
-                : null
-            )
-        )
-    )
+IriSP.Widget.prototype.currentMedia = function() {
+    return this._serializer.currentMedia();
+}
+
+IriSP.Widget.prototype.getDuration = function() {
+    return this._serializer.getDuration();
 }
 
 /**
--- a/src/js/widgets/annotationsListWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/annotationsListWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -2,12 +2,6 @@
   IriSP.Widget.call(this, Popcorn, config, Serializer);
   this.__counter = 0;
   this.__oldList = [];
- 
-  this.checkOption('ajax_mode');
-  this.checkOption('project_url');
-  this.checkOption('default_thumbnail');
-  this.checkOption("cinecast_version", false);
-  this.checkOption("ajax_url");
   this.searchRe = null;
   this._ajax_cache = [];
   var _this = this;
@@ -34,7 +28,7 @@
 
 IriSP.AnnotationsListWidget.prototype.searchHandler = function(searchString) {
   this.searchRe = (searchString && searchString.length) ? IriSP.regexpFromText(searchString) : null;
-  if (this.ajax_mode) {
+  if (this.ajax_mode && !this.cinecast_version) {
       var _this = this,
         _annotations = (
             this.searchRe === null
@@ -64,11 +58,15 @@
       
     this.selector.html(_html);
     
+    this.selector.find('.Ldt-AnnotationsList-Tag-Li').click(function() {
+        _this._Popcorn.trigger("IriSP.search.triggeredSearch", IriSP.jQuery(this).text().trim());
+    })
+    
     if (this.searchRe !== null) {
         this.selector.find(".Ldt-AnnotationsList-Title a, .Ldt-AnnotationsList-Description")
             .each(function()  {
                 var _$ = IriSP.jQuery(this);
-                _$.html(_$.text().replace(_this.searchRe, '<span class="Ldt-AnnotationsList-highlight">$1</span>'))
+                _$.html(_$.text().trim().replace(_this.searchRe, '<span class="Ldt-AnnotationsList-highlight">$1</span>'))
             })
     }
 };
@@ -155,9 +153,10 @@
   var idList = IriSP.underscore.pluck(list, "id").sort();
 
   
-  if (!IriSP.underscore.isEqual(this.__oldList, idList) || typeof(force_redraw) !== "undefined") {
+  if (!IriSP.underscore.isEqual(this.__oldList, idList) || this.lastSearch !== this.searchRe || typeof(force_redraw) !== "undefined") {
     this.do_redraw(list);
     this.__oldList = idList;
+    this.lastSearch = this.searchRe;
   }
    /* save for next call */
   
@@ -181,8 +180,8 @@
      we have to do that because the platform only knows at run time what view it's displaying.
   */
      
-  var media_id = this._serializer.currentMedia()["id"];
-  var duration = this._serializer.getDuration();
+  var media_id = this.currentMedia()["id"];
+  var duration = this.getDuration();
   
   var begin_timecode = (Math.floor(tcode) - 300) * 1000;
   if (begin_timecode < 0)
@@ -213,7 +212,7 @@
   */
   var l = [];
   
-  var media = this._serializer.currentMedia()["id"];
+  var media = this.currentMedia()["id"];
   
   for (i = 0; i < annotations.length; i++) {
     var obj = this.transformAnnotation(annotations[i])
@@ -246,13 +245,30 @@
   
   var _this = this;
     
-    if (!this.ajax_mode) {
+    if (!this.ajax_mode || this.cinecast_version) {
         var _throttled = IriSP.underscore.throttle(function() {
             _this.drawList();
         }, 1500);
         _throttled();
         this._Popcorn.listen("IriSP.createAnnotationWidget.addedAnnotation", _throttled);
         this._Popcorn.listen("timeupdate", _throttled);
+        if (this.cinecast_version) {
+            window.setInterval(function() {
+                var _tmpSerializer = new IriSP.JSONSerializer(IriSP.__dataloader,  _this._config.metadata.src, true);
+                _tmpSerializer.sync(function(json) {
+                    IriSP.underscore(json.annotations).each(function(_a) {
+                        var _j = _this.annotations_ids.indexOf(_a.id);
+                        if (_j == -1) {
+                            _this._serializer._data.annotations.push(_a);
+                            _this.annotations_ids.push(_a.id);
+                        } else {
+                            _this._serializer._data.annotations[_j] = _a;
+                        }
+                        _throttled();
+                    });
+                }, true); // true is for force_refresh
+            },this.refresh_interval);
+        }
   } else {
     /* update the widget when the video has finished loading and when it's seeked and paused */
     this._Popcorn.listen("seeked", IriSP.wrap(this, this.ajaxRedraw));
--- a/src/js/widgets/annotationsWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/annotationsWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -32,7 +32,7 @@
     var keywords =  "";
     var begin = +annotation.begin / 1000;
     var end = +annotation.end / 1000;
-    var duration = this._serializer.getDuration();
+    var duration = this.getDuration();
     var tags = "";
     
     var title_templ = "{{title}} - ( {{begin}} - {{end}} )";
@@ -64,15 +64,10 @@
     this.selector.find(".Ldt-SaKeywords").text(tags);
     
     // update sharing buttons
-    var defaults = IriSP.widgetsDefaults.AnnotationsWidget;
-    var text = defaults.share_text;
-    var fb_link = defaults.fb_link;
-    var tw_link = defaults.tw_link;
-    var gplus_link = defaults.gplus_link;
     var url = document.location.href + "#id=" + annotation.id;
-    this.selector.find(".Ldt-fbShare").attr("href", IriSP.mkFbUrl(url, text));
-    this.selector.find(".Ldt-TwShare").attr("href", IriSP.mkTweetUrl(url, text));
-    this.selector.find(".Ldt-GplusShare").attr("href", IriSP.mkGplusUrl(url, text));
+    this.selector.find(".Ldt-fbShare").attr("href", IriSP.mkFbUrl(url, this.share_text));
+    this.selector.find(".Ldt-TwShare").attr("href", IriSP.mkTweetUrl(url, this.share_text));
+    this.selector.find(".Ldt-GplusShare").attr("href", IriSP.mkGplusUrl(url, this.share_text));
 };
 
 IriSP.AnnotationsWidget.prototype.clearWidget = function() {   
--- a/src/js/widgets/arrowWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/arrowWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -43,7 +43,7 @@
     var begin = (+ currentAnnotation.begin) / 1000;
     var end = (+ currentAnnotation.end) / 1000;
 
-    var duration = this._serializer.getDuration() / 1000;
+    var duration = this.getDuration() / 1000;
     var middle_time = (begin + end) / 2;
     var percents = middle_time / duration;
 
--- a/src/js/widgets/createAnnotationWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/createAnnotationWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -14,7 +14,7 @@
             "annotation_saved": "Thank you, your annotation has been saved.",
             "share_annotation": "Would you like to share it on social networks ?",
             "share_on": "Share on",
-            "moar_tags": "More tags"
+            "more_tags": "More tags"
         },
         "fr": {
             "submit": "Envoyer",
@@ -28,7 +28,7 @@
             "annotation_saved": "Merci, votre annotation a été enregistrée.",
             "share_annotation": "Souhaitez-vous la partager sur les réseaux sociaux ?",
             "share_on": "Partager sur",
-            "moar_tagz": "Plus de mots-clés"
+            "more_tags": "Plus de mots-clés"
         }
     }
 );
@@ -36,16 +36,6 @@
 IriSP.createAnnotationWidget = function(Popcorn, config, Serializer) {
   IriSP.Widget.call(this, Popcorn, config, Serializer);
   this._hidden = true;
-  
-  this.checkOption("keywords");
-  this.checkOption("polemic_mode", true);
-  this.checkOption("polemics");
-  this.checkOption("cinecast_version", false);
-  this.checkOption("api_endpoint_template");
-  this.checkOption("show_from_field", true);
-  this.checkOption("api_method");
-  this.checkOption("random_keywords");
-  this.checkOption("disable_share", false);
                          
   if (!IriSP.null_or_undefined(IriSP.user)) {
       if (!IriSP.null_or_undefined(IriSP.user.avatar)) {
@@ -74,11 +64,9 @@
 
 IriSP.createAnnotationWidget.prototype.draw = function() {
     var _this = this;
-    if (typeof this._config.remote_keywords != "undefined" && typeof this._config.remote_keywords) {
-        IriSP.jQuery.getJSON(this._config.remote_keywords, function(_json) {
-            _this.keywords = IriSP.underscore(_json.tags).map(function(_tag) {
-                return _tag.meta.description;
-            });
+    if (typeof this.remote_tags == "object") {
+        IriSP.jQuery.getJSON((typeof this.remote_tags.alias == "string" ? this.remote_tags.alias : this.remote_tags.url), function(_json) {
+            _this.tags = _json.tags;
             _this.drawCallback();
         });
     } else {
@@ -100,11 +88,11 @@
     this.showStartScreen();
   }
   
-  if (this.random_keywords) {
+  if (this.random_tags) {
       this.selector.find(".Ldt-createAnnotation-keywords li").hide();
-      this.showMoarTagz();
+      this.showMoreTags();
       this.selector.find('.Ldt-createAnnotation-moar-keywordz').click(function() {
-          _this.showMoarTagz();
+          _this.showMoreTags();
       })
   }
   // Add onclick event to both polemic and keywords buttons
@@ -117,7 +105,10 @@
   // js_mod is a custom event because there's no simple way to test for a js
   // change in a textfield.                    
   this.selector.find(".Ldt-createAnnotation-Description")
-               .bind("propertychange keyup input paste click js_mod", IriSP.wrap(this, this.handleTextChanges));
+               .bind("propertychange keyup input paste click js_mod", IriSP.wrap(this, this.handleTextChanges))
+          .keyup(function(_e) {
+              console.log(_e);
+          });
                
   /* the cinecast version of the player is supposed to pause when the user clicks on the button */
 
@@ -178,8 +169,8 @@
   }
 };
 
-IriSP.createAnnotationWidget.prototype.showMoarTagz = function() {
-    for (var j=0; j < this.random_keywords; j++) {
+IriSP.createAnnotationWidget.prototype.showMoreTags = function() {
+    for (var j=0; j < this.random_tags; j++) {
         var _jq = this.selector.find(".Ldt-createAnnotation-keywords li:hidden");
         if (_jq.length > 1) {
             IriSP.jQuery(_jq[Math.floor(_jq.length*Math.random())]).show();
@@ -228,7 +219,7 @@
     // block the arrow.
     this._Popcorn.trigger("IriSP.ArrowWidget.blockArrow");
     
-    var duration = this._serializer.getDuration();
+    var duration = this.getDuration();
         
     var currentChapter = this._serializer.currentChapitre(currentTime);
 
@@ -387,23 +378,28 @@
 
 IriSP.createAnnotationWidget.prototype.sendLdtData = function(contents, callback) {
   var _this = this;
-  var apiJson = {annotations : [{}], meta: {}};
+  var apiJson = {
+      format : "http://advene.org/ns/cinelab/",
+      annotations : [
+        {}
+        ],
+        meta: {}};
   var annotation = apiJson.annotations[0];
   
-  annotation.media = this._serializer.currentMedia()["id"];
+  annotation.media = this.currentMedia()["id"];
   
   if (this.cinecast_version) {   
       annotation.begin = Math.round(this._Popcorn.currentTime() * 1000);
       annotation.end = annotation.begin;      
   } else {
-    var duration = this._serializer.getDuration();    
+    var duration = this.getDuration();    
     annotation.begin = +((duration * (this.sliceLeft / 100)).toFixed(0));
     annotation.end = +((duration * ((this.sliceWidth + this.sliceLeft) / 100)).toFixed(0));
   }
 
   // boundary checks
   annotation.begin = Math.max(0, annotation.begin);
-  annotation.end = Math.min(this._serializer.getDuration(), annotation.end);
+  annotation.end = Math.min(this.getDuration(), annotation.end);
   
   annotation.type = ( this.cinecast_version ? "cinecast:UserAnnotation" : ( this._serializer.getContributions() || "" ));
   if (typeof(annotation.type) === "undefined")
@@ -438,19 +434,28 @@
   
   meta.created = Date().toString();
   
-  // All #hashtags are added to tags
-  var _tags = contents.toLowerCase().match(/#[^#\s]+\b/gim) || [];
-  this.selector.find('.Ldt-createAnnotation-keyword-button').each(function() {
-      var _tx = IriSP.jQuery(this).text(),
-        _rx = IriSP.regexpFromText(_tx);
+  var _tags = [];
+  IriSP._(this.tags).each(function(_v) {
+      var _rx = IriSP.regexpFromText(_v.meta.description);
         if (_rx.test(contents)) {
-            _tags.push(_tx.toLowerCase())
+            _tags.push(_v.id);
         }
   });
-  
+
+  if (typeof this.remote_tags == "object") {
+     _tags = IriSP._(_tags).map(function(_t) {
+         return _this.remote_tags.id + ':' + _t
+     });
+    if (typeof apiJson.imports == "undefined") {
+       apiJson.imports = [];
+    }
+    apiJson.imports.push({
+        "id" : this.remote_tags.id,
+        "url" : this.remote_tags.url
+    })
+  }
   annotation.tags = IriSP.underscore.uniq(_tags);
   
-  
   var jsonString = JSON.stringify(apiJson);
   var project_id = this._serializer._data.meta.id;
   
@@ -495,6 +500,7 @@
                     _this._serializer._data.annotations.push(annotation);
  
                     _this._Popcorn.trigger("IriSP.createAnnotationWidget.addedAnnotation", annotation);
+                    this.selector.find(".Ldt-createAnnotation-Description").val("");
                     callback(annotation);
       }), 
       error: 
--- a/src/js/widgets/playerWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/playerWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -127,7 +127,7 @@
   }
   
   // we get it at each call because it may change.
-  var duration = this._serializer.getDuration() / 1000; 
+  var duration = this.getDuration() / 1000; 
   var totalTime = IriSP.secondsToTime(duration);
   var elapsedTime = IriSP.secondsToTime(this._Popcorn.currentTime());
   
--- a/src/js/widgets/polemicWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/polemicWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -51,7 +51,7 @@
     var lineSize      = this.width;        // timeline pixel width 
     var nbrframes     = lineSize/frameSize;     // frame numbers
     var numberOfTweet   = 0;            // number of tweet overide later 
-    var duration      = this._serializer.getDuration();      // timescale width 
+    var duration      = this.getDuration();      // timescale width 
     var frameLength   = lineSize / frameSize;    // frame timescale  
     var timeline;
     var colors  = new Array("","#1D973D","#036AAE","#CE0A15","#C5A62D","#585858");
@@ -385,7 +385,7 @@
 IriSP.PolemicWidget.prototype.sliderUpdater = function() {
 
     var time = +this._Popcorn.currentTime();
-    var duration = this._serializer.getDuration();
+    var duration = this.getDuration();
     
     this.paperSlider.attr("width", time * (this.width / (duration / 1000)));
         
--- a/src/js/widgets/segmentsWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/segmentsWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -9,7 +9,6 @@
   this._Popcorn.listen("IriSP.search.closed", function() { self.searchFieldClosedHandler.call(self); });
   this._Popcorn.listen("IriSP.search.cleared", function() { self.searchFieldClearedHandler.call(self); });
   
-  this.checkOption("cinecast_version");
   this.defaultColors = ["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"]
 };
 
@@ -26,7 +25,7 @@
   this.positionMarker = this.selector.find(".Ldt-SegmentPositionMarker");
   
   this._Popcorn.listen("timeupdate", IriSP.wrap(this, this.positionUpdater));
-  var duration = this._serializer.getDuration();
+  var duration = this.getDuration();
   
   if (this.cinecast_version) {
       var segments_annotations = IriSP.underscore.filter(
@@ -193,7 +192,7 @@
 };
 
 IriSP.SegmentsWidget.prototype.positionUpdater = function() {  
-  var duration = this._serializer.getDuration() / 1000;
+  var duration = this.getDuration() / 1000;
   var time = this._Popcorn.currentTime();
   //var position 	= ((time / duration) * 100).toFixed(2);
   var position 	= ((time / duration) * 100).toFixed(2);
--- a/src/js/widgets/sliderWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/sliderWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -52,7 +52,7 @@
   
   var time = this._Popcorn.currentTime();
 
-  var duration = this._serializer.getDuration() / 1000;
+  var duration = this.getDuration() / 1000;
   var percents = time / duration;
   
   /* we do these complicated calculations to center exactly
@@ -92,7 +92,7 @@
   var width = this.sliderBackground.width();
   var relX = event.pageX - parentOffset.left;
 
-  var duration = this._serializer.getDuration() / 1000;
+  var duration = this.getDuration() / 1000;
   var newTime = ((relX / width) * duration).toFixed(2);
 
   this._Popcorn.currentTime(newTime);
@@ -105,7 +105,7 @@
   var width = this.sliderBackground.width();
   var relX = event.pageX - parentOffset.left;
 
-  var duration = this._serializer.getDuration() / 1000;
+  var duration = this.getDuration() / 1000;
   var newTime = ((relX / width) * duration).toFixed(2);
 
   this._Popcorn.currentTime(newTime);
@@ -133,7 +133,7 @@
 IriSP.SliderWidget.prototype.mouseOutHandler = function(event) {
 
   this.timeOutId = window.setTimeout(IriSP.wrap(this, this.minimizeOnTimeout),
-                                     IriSP.widgetsDefaults.SliderWidget.minimize_period);
+                                     this.minimize_period);
 };
 
 IriSP.SliderWidget.prototype.minimizeOnTimeout = function(event) {
@@ -162,7 +162,7 @@
   var width = this.sliderBackground.width();
   var relX = event.originalEvent.pageX - parentOffset.left;
 
-  var duration = this._serializer.getDuration() / 1000;
+  var duration = this.getDuration() / 1000;
   var newTime = ((relX / width) * duration).toFixed(2);
   this._Popcorn.currentTime(newTime);
   
--- a/src/js/widgets/sparklineWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/sparklineWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -5,9 +5,6 @@
   this._oldAnnotation = null;
   this._results = [];
   
-  this.lineColor = this._config.lineColor || "#7492b4";
-  this.fillColor = this._config.fillColor || "#aeaeb8";
-  this.lineWidth = this._config.lineWidth || 2;
   this.slices = this._config.slices || Math.floor(this.width/20);
   if (!this.width) {
       this.width = this.selector.width();
@@ -19,7 +16,6 @@
   if (this._config.background) {
       this.selector.css("background", this._config.background);
   }
-  this.checkOption('cinecast_version');
 };
 
 
@@ -31,7 +27,7 @@
 
 /** draw the sparkline using jquery sparkline */
 IriSP.SparklineWidget.prototype.draw = function() {
-    this.duration = this._serializer.getDuration();
+    this.duration = this.getDuration();
     this.paper = new Raphael(this.selector[0], this.width, this.height);
     var _this = this;
   
@@ -58,7 +54,7 @@
             _sliceDuration = Math.floor( this.duration / this.slices),
             _results = _(_.range(this.slices)).map(function(_i) {
                 return _(_annotations).filter(function(_a){
-                    return (_a.begin <= (1 + _i) * _sliceDuration) && (_a.end >= _i * _sliceDuration) && (!_this.cinecast_version || _a.type == "cinecast:UserAnnotation")
+                    return (_a.begin <= (1 + _i) * _sliceDuration) && (_a.end >= _i * _sliceDuration)
                 }).length;
             });
     }
--- a/src/js/widgets/stackGraphWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/stackGraphWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -5,53 +5,23 @@
 IriSP.StackGraphWidget.prototype = new IriSP.Widget();
 
 IriSP.StackGraphWidget.prototype.draw = function() {
-    var _ = IriSP._,
-        _defaultTags = [
-            {
-                "keywords" : [ "++" ],
-                "description" : "positif",
-                "color" : "#1D973D"
-            },
-            {
-                "keywords" : [ "--" ],
-                "description" : "negatif",
-                "color" : "#CE0A15"
-            },
-            {
-                "keywords" : [ "==" ],
-                "description" : "reference",
-                "color" : "#C5A62D"  
-            },
-            {
-                "keywords" : [ "??" ],
-                "description" : "question",
-                "color" : "#036AAE"
-            }
-        ],
-        _defaultDefColor = "#585858";
+    var _ = IriSP._;
     this.height =  this._config.height || 50;
     this.width = this.selector.width();
-    this.isStreamGraph = this._config.streamgraph || false;
-    this.sliceCount = this._config.slices || ~~(this.width/(this.isStreamGraph ? 20 : 5));
-    this.tagconf = (this._config.tags
-        ? this._config.tags
-        : _defaultTags);
-    IriSP._(this.tagconf).each(function(_a) {
+    this.slices = this._config.slices || ~~(this.width/(this.streamgraph ? 20 : 5));
+    _(this.tags).each(function(_a) {
         _a.regexp = new RegExp(_(_a.keywords).map(function(_k) {
             return _k.replace(/([\W])/gm,'\\$1');
         }).join("|"),"im")
     });
-    this.defaultcolorconf = (this._config.defaultcolor
-        ? this._config.defaultcolor
-        : _defaultDefColor);
     this.paper = new Raphael(this.selector[0], this.width, this.height);
     this.groups = [];
-    this.duration = this._serializer.getDuration();
+    this.duration = this.getDuration();
     
     var _annotationType = this._serializer.getTweets(),
-        _sliceDuration = ~~ ( this.duration / this.sliceCount),
+        _sliceDuration = ~~ ( this.duration / this.slices),
         _annotations = this._serializer._data.annotations,
-        _groupedAnnotations = _(_.range(this.sliceCount)).map(function(_i) {
+        _groupedAnnotations = _(_.range(this.slices)).map(function(_i) {
             return _(_annotations).filter(function(_a){
                 return (_a.begin <= (1 + _i) * _sliceDuration) && (_a.end >= _i * _sliceDuration)
             });
@@ -60,25 +30,25 @@
             return _g.length
         }).length,
         _scale = this.height / _max,
-        _width = this.width / this.sliceCount,
+        _width = this.width / this.slices,
         _showTitle = !this._config.excludeTitle,
         _showDescription = !this._config.excludeDescription;
     
     
-    var _paths = _(this.tagconf).map(function() {
+    var _paths = _(this.tags).map(function() {
         return [];
     });
     _paths.push([]);
     
-    for (var i = 0; i < this.sliceCount; i++) {
+    for (var i = 0; i < this.slices; i++) {
         var _group = _groupedAnnotations[i];
         if (_group) {
-            var _vol = _(this.tagconf).map(function() {
+            var _vol = _(this.tags).map(function() {
                 return 0;
             });
             for (var j = 0; j < _group.length; j++){
            var _txt = (_showTitle ? _group[j].content.title : '') + ' ' + (_showDescription ? _group[j].content.description : '')
-                var _tags = _(this.tagconf).map(function(_tag) {
+                var _tags = _(this.tags).map(function(_tag) {
                         return (_txt.search(_tag.regexp) == -1 ? 0 : 1)
                     }),
                     _nbtags = _(_tags).reduce(function(_a,_b) {
@@ -96,20 +66,20 @@
                 _nbneutre = _group.length - _nbtags,
                 _h = _nbneutre * _scale,
                 _base = this.height - _h;
-            if (!this.isStreamGraph) {
+            if (!this.streamgraph) {
                 this.paper.rect(i * _width, _base, _width - 1, _h ).attr({
                     "stroke" : "none",
-                    "fill" : this.defaultcolorconf
+                    "fill" : this.defaultcolor
                 });
             }
            _paths[0].push(_base);
-            for (var j = 0; j < this.tagconf.length; j++) {
+            for (var j = 0; j < this.tags.length; j++) {
                 _h = _vol[j] * _scale;
                 _base = _base - _h;
-                if (!this.isStreamGraph) {
+                if (!this.streamgraph) {
                     this.paper.rect(i * _width, _base, _width - 1, _h ).attr({
                         "stroke" : "none",
-                        "fill" : this.tagconf[j].color
+                        "fill" : this.tags[j].color
                     });
                 }
                 _paths[j+1].push(_base);
@@ -121,13 +91,13 @@
             for (var j = 0; j < _paths.length; j++) {
                 _paths[j].push(this.height);
             }
-            this.groups.push(_(this.tagconf).map(function() {
+            this.groups.push(_(this.tags).map(function() {
                 return 0;
             }));
         }
     }
     
-    if (this.isStreamGraph) {
+    if (this.streamgraph) {
         for (var j = _paths.length - 1; j >= 0; j--) {
             var _d = _(_paths[j]).reduce(function(_memo, _v, _k) {
                return _memo + ( _k
@@ -136,7 +106,7 @@
             },'') + 'L' + this.width + ' ' + _paths[j][_paths[j].length - 1] + 'L' + this.width + ' ' + this.height + 'L0 ' + this.height;
             this.paper.path(_d).attr({
                 "stroke" : "none",
-                "fill" : (j ? this.tagconf[j-1].color : this.defaultcolorconf)
+                "fill" : (j ? this.tags[j-1].color : this.defaultcolor)
             });
         }
     }
@@ -162,7 +132,7 @@
             _this.updateTooltip(_e);
             // Trace
             var relX = _e.pageX - _this.selector.offset().left;
-            var _duration = _this._serializer.getDuration();
+            var _duration = _this.getDuration();
             var _time = parseInt((relX / _this.width) * _duration);
             _this._Popcorn.trigger("IriSP.TraceWidget.MouseEvents", {
                 "widget" : "StackGraphWidget",
@@ -203,10 +173,10 @@
 };
 
 IriSP.StackGraphWidget.prototype.updateTooltip = function(event) {
-    var _segment = Math.max(0,Math.min(this.groups.length - 1, Math.floor(this.sliceCount * (event.pageX - this.selector.offset().left)/this.width))),
+    var _segment = Math.max(0,Math.min(this.groups.length - 1, Math.floor(this.slices * (event.pageX - this.selector.offset().left)/this.width))),
         _valeurs = this.groups[_segment],
-        _width = this.width / this.sliceCount,
-        _html = '<ul style="list-style: none; margin: 0; padding: 0;">' + IriSP._(this.tagconf).map(function(_tag, _i) {
+        _width = this.width / this.slices,
+        _html = '<ul style="list-style: none; margin: 0; padding: 0;">' + IriSP._(this.tags).map(function(_tag, _i) {
             return '<li style="clear: both;"><span style="float: left; width: 10px; height: 10px; margin: 2px; background: '
                 + _tag.color
                 + ';"></span>'
@@ -216,7 +186,7 @@
                 + '</li>';
         }).join('') + '</ul>';
     this.TooltipWidget._shown = false; // Vraiment, on ne peut pas ouvrir le widget s'il n'est pas encore ouvert ?
-    this.TooltipWidget.show('','',(_segment + .5)* this.width / this.sliceCount, 0);
+    this.TooltipWidget.show('','',(_segment + .5)* this.width / this.slices, 0);
     this.TooltipWidget.selector.find(".tip").html(_html);
     this.rectangleFocus.attr({
         "x" : _segment * _width,
--- a/src/js/widgets/tweetsWidget.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/js/widgets/tweetsWidget.js	Fri Apr 06 16:49:32 2012 +0200
@@ -19,7 +19,7 @@
     var title = IriSP.formatTweet(annotation.content.title);
     var img = annotation.content.img.src;
     if (typeof(img) === "undefined" || img === "" || img === "None") {
-      img = IriSP.widgetsDefaults.TweetsWidget.default_profile_picture;
+      img = this.default_profile_picture;
     }
 
     var imageMarkup = IriSP.templToHTML("<img src='{{src}}' alt='user image'></img>", 
@@ -63,7 +63,7 @@
   this.drawTweet(annotation);
 
   var time = this._Popcorn.currentTime();  
-  this._timeoutId = window.setTimeout(IriSP.wrap(this, this.clearPanel), IriSP.widgetsDefaults.TweetsWidget.tweet_display_period);
+  this._timeoutId = window.setTimeout(IriSP.wrap(this, this.clearPanel), this.tweet_display_period);
 };
 
 
--- a/src/templates/annotationsListWidget.html	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/templates/annotationsListWidget.html	Fri Apr 06 16:49:32 2012 +0200
@@ -3,7 +3,11 @@
     <ul class='Ldt-AnnotationsList-ul'>
         {{#annotations}}
         <li id='Ldt-Annotation-li-{{id}}' class='Ldt-AnnotationsList-li Ldt-TraceMe'>
-            <img class='Ldt-AnnotationsList-Thumbnail' src='{{thumbnail}}' />
+            {{^url}} <a href='#id={{id}}'> {{/url}}
+            {{! otherwise link to url }}
+            {{#url}} <a href='{{url}}'> {{/url}}
+                <img class='Ldt-AnnotationsList-Thumbnail' src='{{thumbnail}}' />
+            </a>
             <div class='Ldt-AnnotationsList-Duration'>
                 <span class='Ldt-AnnotationsList-Begin'>{{begin}}</span>
                 <span class='Ldt-AnnotationsList-TcSeparator'>-</span>
@@ -12,14 +16,14 @@
             <div class='Ldt-AnnotationsList-Title'>
             {{! if the url is not present, it means that the annotation exists
             in the current project }}
+                {{title}}
+            </div>
+            <div class='Ldt-AnnotationsList-Description'>
             {{^url}} <a href='#id={{id}}'> {{/url}}
             {{! otherwise link to url }}
             {{#url}} <a href='{{url}}'> {{/url}}
-                {{title}}
-            </a>
-            </div>
-            <div class='Ldt-AnnotationsList-Description'>
                 {{desc}}
+                </a>
             </div>
             {{#tags.length}}
             <ul class='Ldt-AnnotationsList-Tags'>
--- a/src/templates/createAnnotationWidget.html	Tue Apr 03 20:30:12 2012 +0200
+++ b/src/templates/createAnnotationWidget.html	Fri Apr 06 16:49:32 2012 +0200
@@ -23,19 +23,19 @@
                 <div class='Ldt-createAnnotation-profileArrow'></div>
             </div>
             <button class='Ldt-createAnnotation-submitButton Ldt-TraceMe'>{{l10n.submit}}</button>
-            {{#keywords.length}}
+            {{#tags.length}}
             <div class='Ldt-createAnnotation-btnblock Ldt-createAnnotation-keywords'>
                 <label>{{l10n.add_keywords}} :</label>
                 <ul class='Ldt-floatList'>
-                {{#keywords}}
-                    <li><button class='Ldt-createAnnotation-keyword-button Ldt-TraceMe'>{{.}}</button></li>
-                {{/keywords}}
+                {{#tags}}
+                    <li><button class='Ldt-createAnnotation-keyword-button Ldt-TraceMe' tag-id='{{id}}'>{{meta.description}}</button></li>
+                {{/tags}}
                 </ul>
             </div>
-            {{#random_keywords}}
-                <button class='Ldt-createAnnotation-moar-keywordz'>{{l10n.moar_tagz}}</button>
-            {{/random_keywords}}
-            {{/keywords.length}}
+            {{#random_tags}}
+                <button class='Ldt-createAnnotation-moar-keywordz'>{{l10n.more_tags}}</button>
+            {{/random_tags}}
+            {{/tags.length}}
             {{#polemic_mode}}
             {{#polemics.length}}
             <div class='Ldt-createAnnotation-btnblock Ldt-createAnnotation-polemics'>
Binary file test/integration/allocine_dossier_independant/allocine_test/AcPlayer_v3.0.swf has changed
--- a/test/integration/allocine_dossier_independant/allocine_test/bamako.json	Tue Apr 03 20:30:12 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,933 +0,0 @@
-{
-    "medias": [
-        {
-            "id": "cinecast:Bamako",
-            "url": "rtmpe://cp41629.edgefcs.net/ondemand/mp4:ondemand/nmedia/cinecast/Bamako1500.m4v",
-            "meta": {
-                "mediaid": 1,
-                "actors": ["Aissa Maiga", "Tiecoura Traore", "Maimouna Helene Diarra"],
-                "directors": ["Abderrahmane Sissako"],
-                "nationalities": ["FR"],
-                "duration": 7080000,
-                "productionYear": "2006",
-                "synopsis": null,
-                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/bamako/42851-1-fre-FR/Bamako3_reference.jpg",
-                "title": "Bamako",
-                "version": "VOST"
-            }
-        }
-    ],
-    "annotation_types": [
-        {
-            "id": "cinecast:UserAnnotation",
-            "meta": {
-                "description": "Annotation made during the Cinecast Festival."
-            }
-        },
-        {
-            "id": "cinecast:MovieExtract",
-            "meta": {
-                "description": "Extract from a Movie."
-            }
-        }
-    ],
-    "annotations": [
-        {
-            "id": "ac:3637",
-            "begin": 2516000,
-            "end": 2516000,
-            "timecode": 0,
-            "content": {
-                "data": "sdfdfdfd"
-            },
-            "media": "cinecast:Bamako",
-            "tags": [],
-            "type": "cinecast:UserAnnotation",
-            "meta": {
-                "mediaid": 1,
-                "thumbnail": "/users/02/8/6/4/Z20010705122316617847468/img/1178887619_singe.jpg",
-                "extract": "789849",
-                "status": "active",
-                "timestamp": 12994,
-                "created": "2012-03-16T10:01:00.9370000",
-                "creator": "ac:3",
-                "creator_name": "Pierre",
-                "url": "http:\/\/www.allocine.com/"
-            }
-        }, {
-            "id": "ac:3638",
-            "begin": 187000,
-            "end": 187000,
-            "timecode": 0,
-            "content": {
-                "data": "test #vodkaster #allocine #universcine"
-            },
-            "media": "cinecast:Bamako",
-            "tags": ["#vodkaster", "#allocine", "#universcine"],
-            "type": "cinecast:UserAnnotation",
-            "meta": {
-                "mediaid": 1,
-                "thumbnail": "/users/02/7/7/4/Z20110103142031450307477/img/0tyw3myh.cce.jpg",
-                "extract": "789849",
-                "status": "active",
-                "timestamp": 12995,
-                "created": "2012-03-16T11:06:47.3170000",
-                "creator": "ac:495",
-                "creator_name": "Paul",
-                "url": "http:\/\/www.allocine.com/"
-            }
-        }, {
-            "id": "ac:3639",
-            "begin": 164000,
-            "end": 164000,
-            "timecode": 0,
-            "content": {
-                "data": "edtgefvtdtevd dhevdgvbed debzdgbyezgbdyhebzyd bhd ehdbyhebyhddbhegzvdgevd ghdvegvdgezvdg devtgdvgezvd gbvdgevzgdvzegd gedvgezvd #vodkaster #allocine #universcine"
-            },
-            "media": "cinecast:Bamako",
-            "tags": ["#vodkaster", "#allocine", "#universcine"],
-            "type": "cinecast:UserAnnotation",
-            "meta": {
-                "mediaid": 1,
-                "thumbnail": "/users/02/7/7/4/Z20110103142031450307477/img/0tyw3myh.cce.jpg",
-                "extract": "789849",
-                "status": "active",
-                "timestamp": 12999,
-                "created": "2012-03-16T11:14:14.7930000",
-                "creator": "ac:495",
-                "creator_name": "Paul",
-                "url": "http:\/\/www.allocine.com/"
-            }
-        }, {
-            "id": "ac:3640",
-            "begin": 154000,
-            "end": 154000,
-            "timecode": 0,
-            "content": {
-                "data": "tegvdge"
-            },
-            "media": "cinecast:Bamako",
-            "tags": [],
-            "type": "cinecast:UserAnnotation",
-            "meta": {
-                "mediaid": 1,
-                "thumbnail": "/users/02/7/7/4/Z20110103142031450307477/img/0tyw3myh.cce.jpg",
-                "extract": "789849",
-                "status": "active",
-                "timestamp": 13003,
-                "created": "2012-03-16T11:14:30.0930000",
-                "creator": "ac:495",
-                "creator_name": "Paul",
-                "url": "http:\/\/www.allocine.com/"
-            }
-        }, {
-            "id": "ac:3641",
-            "begin": 177000,
-            "end": 177000,
-            "timecode": 0,
-            "content": {
-                "data": "test #vodkaster"
-            },
-            "media": "cinecast:Bamako",
-            "tags": ["#vodkaster"],
-            "type": "cinecast:UserAnnotation",
-            "meta": {
-                "mediaid": 1,
-                "thumbnail": "/users/02/7/7/4/Z20110103142031450307477/img/0tyw3myh.cce.jpg",
-                "extract": "789849",
-                "status": "active",
-                "timestamp": 13004,
-                "created": "2012-03-16T11:27:56.9200000",
-                "creator": "ac:495",
-                "creator_name": "Paul",
-                "url": "http:\/\/www.allocine.com/"
-            }
-        }, {
-            "id": "ac:3642",
-            "begin": 434000,
-            "end": 434000,
-            "timecode": 0,
-            "content": {
-                "data": "fgsdkjfgfsdkjgfkjgfjksdgjkkjgfkjsg"
-            },
-            "media": "cinecast:Bamako",
-            "tags": [],
-            "type": "cinecast:UserAnnotation",
-            "meta": {
-                "mediaid": 1,
-                "thumbnail": "/users/02/5/4/4/Z20101124101755407924445/img/02kehkqh.re1.jpg",
-                "extract": "789849",
-                "status": "active",
-                "timestamp": 13006,
-                "created": "2012-03-16T11:49:33.0770000",
-                "creator": "ac:513",
-                "creator_name": "Jacques",
-                "url": "http:\/\/www.allocine.com/"
-            }
-        }, {
-            "id": "ac:3643",
-            "begin": 177000,
-            "end": 177000,
-            "timecode": 0,
-            "content": {
-                "data": "tetsd dgzydg"
-            },
-            "media": "cinecast:Bamako",
-            "tags": [],
-            "type": "cinecast:UserAnnotation",
-            "meta": {
-                "mediaid": 1,
-                "thumbnail": "/users/02/8/6/4/Z20010705122316617847468/img/1178887619_singe.jpg",
-                "extract": "789849",
-                "status": "active",
-                "timestamp": 13007,
-                "created": "2012-03-16T12:50:38.3100000",
-                "creator": "ac:3",
-                "creator_name": "Pierre",
-                "url": "http:\/\/www.allocine.com/"
-            }
-        }, {
-            "id": "ac:3644",
-            "begin": 177000,
-            "end": 177000,
-            "timecode": 0,
-            "content": {
-                "data": "coucou"
-            },
-            "media": "cinecast:Bamako",
-            "tags": [],
-            "type": "cinecast:UserAnnotation",
-            "meta": {
-                "mediaid": 1,
-                "thumbnail": "/users/02/4/2/5/Z20090108105245410444524/img/io54r5is.0qi.jpg",
-                "extract": "789849",
-                "status": "active",
-                "timestamp": 13008,
-                "created": "2012-03-16T13:37:48.3600000",
-                "creator": "ac:382",
-                "creator_name": "Martin",
-                "url": "http:\/\/www.allocine.com/"
-            }
-        }, {
-            "id": "ac:10806",
-            "begin": 120000,
-            "end": 120000,
-            "timecode": 0,
-            "content": {
-                "data": "tetzfdtfzd"
-            },
-            "media": "cinecast:Bamako",
-            "tags": [],
-            "type": "cinecast:UserAnnotation",
-            "meta": {
-                "mediaid": 1,
-                "thumbnail": "/users/02/7/7/4/Z20110103142031450307477/img/0tyw3myh.cce.jpg",
-                "extract": "789849",
-                "status": "active",
-                "timestamp": 20201,
-                "created": "2012-03-19T14:26:17.4870000",
-                "creator": "ac:495",
-                "creator_name": "Paul",
-                "url": "http:\/\/www.allocine.com/"
-            }
-        }, {
-            "id": "cinecast:789808",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34952\/25592345-4-fre-FR\/34952-Generique-de-debut-et-preparation-a-l-audience1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 0,
-            "end": 180000,
-            "content": {
-                "data": "G\u00e9n\u00e9rique de d\u00e9but et pr\u00e9paration \u00e0 l'audience"
-            }
-        }, {
-            "id": "cinecast:789812",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34953\/25592424-3-fre-FR\/34953-Debut-de-l-audience1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 180000,
-            "end": 284000,
-            "content": {
-                "data": "D\u00e9but de l'audience"
-            }
-        }, {
-            "id": "cinecast:789816",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34954\/25592478-3-fre-FR\/34954-Fin-du-spectacle-et-reprise-de-l-audience1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 404000,
-            "end": 579000,
-            "content": {
-                "data": "Fin du spectacle et reprise de l'audience"
-            }
-        }, {
-            "id": "cinecast:789818",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34955\/25592528-3-fre-FR\/34955-Corruption-et-seduction1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 579000,
-            "end": 676000,
-            "content": {
-                "data": "Corruption et s\u00e9duction"
-            }
-        }, {
-            "id": "cinecast:789820",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34956\/25592566-2-fre-FR\/34956-Des-chiffres-africains-calamiteux1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 676000,
-            "end": 797000,
-            "content": {
-                "data": "Des chiffres africains calamiteux"
-            }
-        }, {
-            "id": "cinecast:789822",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34957\/25592606-2-fre-FR\/34957-un-ideal-de-societe-inadaptee1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 797000,
-            "end": 977000,
-            "content": {
-                "data": "un id\u00e9al de soci\u00e9t\u00e9 inadapt\u00e9e"
-            }
-        }, {
-            "id": "cinecast:789824",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34958\/25592668-2-fre-FR\/34958-Supercherie-du-G81_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 977000,
-            "end": 1143000,
-            "content": {
-                "data": "\"Supercherie\" du G8 ?"
-            }
-        }, {
-            "id": "cinecast:789825",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34959\/25592703-2-fre-FR\/34959-C-est-un-debat-qui-depasse-l-Afrique1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 1143000,
-            "end": 1276000,
-            "content": {
-                "data": "C'est un d\u00e9bat qui d\u00e9passe l'Afrique"
-            }
-        }, {
-            "id": "cinecast:789839",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34960\/25592937-2-fre-FR\/34960-Ce-monde-est-ouvert-aux-blancs-mais-pas-aux-noirs1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 1276000,
-            "end": 1456000,
-            "content": {
-                "data": "Ce monde est ouvert aux blancs mais pas aux noirs"
-            }
-        }, {
-            "id": "cinecast:789849",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34961\/25593042-2-fre-FR\/34961-Standby1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 1456000,
-            "end": 1590000,
-            "content": {
-                "data": "Standby"
-            }
-        }, {
-            "id": "cinecast:789854",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34963\/25593121-2-fre-FR\/34963-Expose-du-periple1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 1590000,
-            "end": 1761000,
-            "content": {
-                "data": "Expos\u00e9 du p\u00e9riple"
-            }
-        }, {
-            "id": "cinecast:789874",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34967\/25593375-2-fre-FR\/34967-Expose-du-periple-21_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 1761000,
-            "end": 1901000,
-            "content": {
-                "data": "Expos\u00e9 du p\u00e9riple 2"
-            }
-        }, {
-            "id": "cinecast:789878",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34968\/25593421-2-fre-FR\/34968-L-audience-est-suspendue1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 1901000,
-            "end": 2081000,
-            "content": {
-                "data": "L'audience est suspendue"
-            }
-        }, {
-            "id": "cinecast:789880",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34969\/25593461-2-fre-FR\/34969-Activites-et-problemes-du-soir1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 2081000,
-            "end": 2134000,
-            "content": {
-                "data": "Activit\u00e9s et probl\u00e8mes du soir"
-            }
-        }, {
-            "id": "cinecast:789884",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34970\/25593533-4-fre-FR\/34970-Death-in-Tumbuktu-11_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 2134000,
-            "end": 2301000,
-            "content": {
-                "data": "Death in Tumbuktu 1"
-            }
-        }, {
-            "id": "cinecast:789888",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34971\/25593579-2-fre-FR\/34971-Death-in-Tumbuktu-21_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 2301000,
-            "end": 2457000,
-            "content": {
-                "data": "Death in Tumbuktu 2"
-            }
-        }, {
-            "id": "cinecast:789891",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34972\/25593626-3-fre-FR\/34972-Une-vie-et-un-couple-precaires1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 2457000,
-            "end": 2624000,
-            "content": {
-                "data": "Une vie et un couple pr\u00e9caires"
-            }
-        }, {
-            "id": "cinecast:789896",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34973\/25593677-3-fre-FR\/34973-Un-mariage-interrompt-l-audience1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 2624000,
-            "end": 2763000,
-            "content": {
-                "data": "Un mariage interrompt l'audience"
-            }
-        }, {
-            "id": "cinecast:789901",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34974\/25593734-2-fre-FR\/34974-L-Afrique-n-a-t-elle-plus-aucun-moyen-financier1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 2763000,
-            "end": 2903000,
-            "content": {
-                "data": "L'Afrique n'a-t-elle plus aucun moyen financier ?"
-            }
-        }, {
-            "id": "cinecast:789904",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34975\/25593779-2-fre-FR\/34975-BM-ET-FMI-les-seuls-coupables1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 2903000,
-            "end": 3056000,
-            "content": {
-                "data": "BM ET FMI : les seuls coupables ?"
-            }
-        }, {
-            "id": "cinecast:789906",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34976\/25593821-2-fre-FR\/34976-Reflexion-sur-le-role-des-banques1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 3056000,
-            "end": 3110000,
-            "content": {
-                "data": "R\u00e9flexion sur le r\u00f4le des banques"
-            }
-        }, {
-            "id": "cinecast:789911",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34978\/25593906-2-fre-FR\/34978-Absence-d-ambassade-d-Israel-preuve-de-l-anti-developpement1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 3110000,
-            "end": 3202000,
-            "content": {
-                "data": "Absence d'ambassade d'Isra\u00ebl = preuve de l'anti-d\u00e9veloppement ?"
-            }
-        }, {
-            "id": "cinecast:789914",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34979\/25593951-2-fre-FR\/34979-Colonialisme-latent1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 3202000,
-            "end": 3359000,
-            "content": {
-                "data": "Colonialisme latent"
-            }
-        }, {
-            "id": "cinecast:789917",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34981\/25594026-2-fre-FR\/34981-Colonialisme-latent-21_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 3359000,
-            "end": 3411000,
-            "content": {
-                "data": "Colonialisme latent 2"
-            }
-        }, {
-            "id": "cinecast:789919",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34982\/25594093-2-fre-FR\/34982-Colonialisme-latent-31_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 3522000,
-            "end": 3573000,
-            "content": {
-                "data": "Colonialisme latent 3"
-            }
-        }, {
-            "id": "cinecast:789921",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34983\/25594133-2-fre-FR\/34983-Sermon-du-pasteur1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 3573000,
-            "end": 3722000,
-            "content": {
-                "data": "Sermon du pasteur"
-            }
-        }, {
-            "id": "cinecast:789925",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34985\/25594213-2-fre-FR\/34985-Standby-21_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 3722000,
-            "end": 3807000,
-            "content": {
-                "data": "Standby 2"
-            }
-        }, {
-            "id": "cinecast:789927",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34986\/25594280-2-fre-FR\/34986-Samba-Diakite1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 3807000,
-            "end": 3981000,
-            "content": {
-                "data": "Samba Diakit\u00e9"
-            }
-        }, {
-            "id": "cinecast:789928",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34987\/25594315-2-fre-FR\/34987-Audience-et-contre-audience1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 3981000,
-            "end": 4033000,
-            "content": {
-                "data": "Audience et contre-audience"
-            }
-        }, {
-            "id": "cinecast:789929",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34988\/25594350-3-fre-FR\/34988-Theorie-du-complot1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 4033000,
-            "end": 4197000,
-            "content": {
-                "data": "Th\u00e9orie du complot"
-            }
-        }, {
-            "id": "cinecast:789931",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34989\/25594417-3-fre-FR\/34989-Reponse-a-la-theorie-du-complot1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 4197000,
-            "end": 4358000,
-            "content": {
-                "data": "R\u00e9ponse \u00e0 la th\u00e9orie du complot"
-            }
-        }, {
-            "id": "cinecast:789933",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34990\/25594484-2-fre-FR\/34990-Recit-d-un-reve1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 4358000,
-            "end": 4443000,
-            "content": {
-                "data": "R\u00e9cit d'un r\u00eave"
-            }
-        }, {
-            "id": "cinecast:789934",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34991\/25594519-2-fre-FR\/34991-Aucune-preuve-qui-soutienne-la-theorie-du-complot1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 4443000,
-            "end": 4545000,
-            "content": {
-                "data": "Aucune preuve qui soutienne la th\u00e9orie du complot"
-            }
-        }, {
-            "id": "cinecast:789940",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34992\/25594575-2-fre-FR\/34992-Triste-soiree1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 4545000,
-            "end": 4620000,
-            "content": {
-                "data": "Triste soir\u00e9e"
-            }
-        }, {
-            "id": "cinecast:789941",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34993\/25594610-2-fre-FR\/34993-Le-tissu-social-est-il-detruit1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 4620000,
-            "end": 4729000,
-            "content": {
-                "data": "Le tissu social est-il d\u00e9truit ?"
-            }
-        }, {
-            "id": "cinecast:789945",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34994\/25594660-2-fre-FR\/34994-Plaidoirie-de-Maitre-Rappaport1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 4729000,
-            "end": 4908000,
-            "content": {
-                "data": "Plaidoirie de Ma\u00eetre Rappaport"
-            }
-        }, {
-            "id": "cinecast:790160",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35018\/25597011-3-fre-FR\/35018-Plaidoirie-de-Maitre-Rappaport-21_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 4908000,
-            "end": 5081000,
-            "content": {
-                "data": "Plaidoirie de Ma\u00eetre Rappaport 2"
-            }
-        }, {
-            "id": "cinecast:790173",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35020\/25597155-2-fre-FR\/35020-Chanter-pour-se-faire-entendre1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 5082000,
-            "end": 5262000,
-            "content": {
-                "data": "Chanter pour se faire entendre"
-            }
-        }, {
-            "id": "cinecast:790194",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35021\/25597543-3-fre-FR\/35021-Plaidoirie-de-Maitre-William-Bourdon1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 5262000,
-            "end": 5434000,
-            "content": {
-                "data": "Plaidoirie de Ma\u00eetre William Bourdon"
-            }
-        }, {
-            "id": "cinecast:790201",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35022\/25597618-3-fre-FR\/35022-Plaidoirie-de-Maitre-William-Bourdon-21_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 5434000,
-            "end": 5588000,
-            "content": {
-                "data": "Plaidoirie de Ma\u00eetre William Bourdon 2"
-            }
-        }, {
-            "id": "cinecast:790207",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35023\/25597704-3-fre-FR\/35023-Plaidoirie-de-Wiliam-Bourdon-41_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 5768000,
-            "end": 5824000,
-            "content": {
-                "data": "Plaidoirie de Wiliam Bourdon 4"
-            }
-        }, {
-            "id": "cinecast:790210",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35024\/25597774-3-fre-FR\/35024-Plaidoirie-de-Aissata-Tall-Sall1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 5824000,
-            "end": 5985000,
-            "content": {
-                "data": "Plaidoirie de A\u00efssata Tall Sall"
-            }
-        }, {
-            "id": "cinecast:790212",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35025\/25597812-3-fre-FR\/35025-Plaidoirie-de-Aissata-Tall-Sall-21_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 5985000,
-            "end": 6081000,
-            "content": {
-                "data": "Plaidoirie de A\u00efssata Tall Sall 2"
-            }
-        }, {
-            "id": "cinecast:790215",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35026\/25597857-3-fre-FR\/35026-Interlude-musical1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 6081000,
-            "end": 6245000,
-            "content": {
-                "data": "Interlude musical"
-            }
-        }, {
-            "id": "cinecast:790217",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35027\/25597895-2-fre-FR\/35027-SPOILER-Suicide1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 6245000,
-            "end": 6311000,
-            "content": {
-                "data": "SPOILER - Suicide"
-            }
-        }, {
-            "id": "cinecast:790218",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35028\/25597930-2-fre-FR\/35028-Funerailles1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 6311000,
-            "end": 6430000,
-            "content": {
-                "data": "Fun\u00e9railles"
-            }
-        }, {
-            "id": "cinecast:790219",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35029\/25597965-2-fre-FR\/35029-Documentaire-sur-les-funerailles1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 6430000,
-            "end": 6539000,
-            "content": {
-                "data": "Documentaire sur les fun\u00e9railles"
-            }
-        }, {
-            "id": "cinecast:790220",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35030\/25598000-2-fre-FR\/35030-Generique-de-fin-11_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 6539000,
-            "end": 6659000,
-            "content": {
-                "data": "G\u00e9n\u00e9rique de fin 1"
-            }
-        }, {
-            "id": "cinecast:790221",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35031\/25598035-2-fre-FR\/35031-Generique-de-fin-21_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 6659000,
-            "end": 6725000,
-            "content": {
-                "data": "G\u00e9n\u00e9rique de fin 2"
-            }
-        }
-    ],
-    "meta": {
-        "id": "cinecast:Bamako",
-        "created": "2012-03-19T17:15:22.4921496Z",
-        "creator": "AlloCine"
-    },
-    "format": "http://advene.org/ns/cinelab/",
-    "imports": [
-        {
-            "id": "cinecast",
-            "url": "http://cinecast.fr/festival/configuration.json"
-        }
-    ]
-}
\ No newline at end of file
--- a/test/integration/allocine_dossier_independant/allocine_test/data_cinecast.xml	Tue Apr 03 20:30:12 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<AcVision>
-<AcVisionVideo refType="mediatheme"
-ref="18644642"
-refTitle="La Minute"
-cmedia="19299288"
-videoTitle="La Minute N°1033 - Mardi 17 janvier 2012"
-mediaType="show"
-genre=""
-urlGen="/video/emissions/laminute/episode/?cmedia=19299288"
-ld_path="http://b.fr.mediaplayer.allocine.fr/nmedia/18/64/46/42/19299288_minute_2012_01_17_l_001.flv"
-md_path="http://h.fr.mediaplayer.allocine.fr/nmedia/18/64/46/42/19299288_minute_2012_01_17_m_001.flv"
-hd_path="http://hd.fr.mediaplayer.allocine.fr/nmedia/18/64/46/42/19299288_minute_2012_01_17_sd_001.flv"
-xt_title="19299288_la_minute_emission_allocinetv"
-thumb=""
-urlFiche="laminute_home"
-/>
-<AcVisionVideoSlides>
-<AcVisionVideoSlide title="La Minute N°1043 - Mardi 31 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19303868_minute_2012_01_31.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19303868" />
-<AcVisionVideoSlide title="La Minute N°1042 - Lundi 30 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19303866_minute_2012_01_30.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19303866" />
-<AcVisionVideoSlide title="La Minute N°1041 - Samedi 28 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19303864_minute_2012_01_28.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19303864" />
-<AcVisionVideoSlide title="La Minute N°1040 - Jeudi 26 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19303192_minute_2012_01_26.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19303192" />
-<AcVisionVideoSlide title="La Minute N°1039 - Mercredi 25 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19302927_minute_2012_01_25.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19302927" />
-<AcVisionVideoSlide title="La Minute N°1038 - Mardi 24 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19300902_minute_2012_01_24.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19300902" />
-<AcVisionVideoSlide title="La Minute N°1037 - Lundi 23 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19300590_minute_2012_01_23.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19300590" />
-<AcVisionVideoSlide title="La Minute N°1036 - Vendredi 20 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19300162_minute_2012_01_20.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19300162" />
-<AcVisionVideoSlide title="La Minute N°1035 - Jeudi 19 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19299668_minute_2012_01_19.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19299668" />
-<AcVisionVideoSlide title="La Minute N°1034 - Mercredi 18 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19299358_minute_2012_01_18.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19299358" />
-<AcVisionVideoSlide title="La Minute N°1032 - Lundi 16 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19298693_minute_2012_01_16.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19298693" />
-<AcVisionVideoSlide title="La Minute N°1031 - Vendredi 13 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19298503_minute_2012_01_13.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19298503" />
-<AcVisionVideoSlide title="La Minute N°1030 - Jeudi 12 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19298131_minute_2012_01_12.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19298131" />
-
-<AcVisionVideoSlide title="La Minute N°1029 - Mercredi 11 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19296197_minute_2012_01_11.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19296197" />
-<AcVisionVideoSlide title="La Minute N°1028 - Mardi 10 janvier 2012"
-thumb="/c_100_80/medias/nmedia/18/64/46/42/19290943_minute_2012_01_10.jpg"
-link="/video/emissions/laminute/episode/?cmedia=19290943" />
-</AcVisionVideoSlides>
-<AcVisionSkin skinSource="allocine_test/skin_fr.swf">
-<clip nameId="titleTopPostRoll">
-<label>
-<![CDATA[AlloCiné présente: | Cliquez ici pour en savoir plus]]>
-</label>
-</clip>
-<clip nameId="mcAddPostRoll" layer1="McAddPostRoll" x="0" y="0">
-<label>
-<![CDATA[Vidéo suivante dans|secondes]]>
-</label>
-</clip>
-<clip nameId="bgAddPostRoll" layer1="BgAddPostRoll" y="20"/>
-<clip nameId="pixAddPostRoll" y="20"/>
-<clip nameId="titleAddPostRoll" y="30" x="100"/>
-
-<clip nameId="accountAddPostRoll" x="10" y="2"/>
-<clip nameId="fondNavPlayer" layer1="FondNavPlayer" width="760" height="36"/>
-<clip nameId="soundVolume" x="77" y="13" width="36" height="36" layer3="SoundVolumeLayer1" layer2="SoundVolumeLayer2" layer1="SoundVolumeLayer3">
-<info>
-<![CDATA[Modifier le volume de la vidéo]]>
-</info>
-</clip>
-<clip nameId="cutSound" x="55" y="13" stateOn="BtCutSoundOn" stateOff="BtCutSoundOff" stateClickOff="BtCutSoundClickOff" stateClickOn="BtCutSoundClickOn">
-<info>
-<![CDATA[Couper le son de la vidéo]]>
-</info>
-</clip>
-<clip nameId="puceTimeLine" stateOn="PuceTimeLineOn" stateOff="PuceTimeLineOff"/>
-<clip nameId="btPlay" x="4" y="11" width="42" height="22" stateOn="BtPlayOn" stateOff="BtPlayOff"/>
-<clip nameId="btPause" x="4" y="11" width="42" height="22" stateOn="BtPauseOn" stateOff="BtPauseOff"/>
-<clip nameId="btReplay2" x="4" y="11" width="42" height="22" stateOn="BtReplay2On" stateOff="BtReplay2Off" />
-<clip nameId="btBigPlay" stateOn="BtBigPlayOn" stateOff="BtBigPlayOff"/>
-
-<clip nameId="btHd" x="553" y="11" stateOn="BtHdOn" stateOff="BtHdOff" stateClickOn="BtHdClickOn">
-<info>
-<![CDATA[Changer la qualité de la vidéo]]>
-</info>
-</clip>
-<clip nameId="btMenu" x="626" y="11" stateOn="BtMenuOn" stateOff="BtMenuOff"/>
-<clip nameId="btMarque" link="www.allocine.fr" linkTarget="_blank" x="688" y="16" stateOn="BtMarqueOn" stateOff="BtMarqueOff">
-<info>
-<![CDATA[Se rendre sur allocine.fr]]>
-</info>
-</clip>
-<clip nameId="btFullScreen" x="593" y="11" stateOn="BtFullScreenOn" stateOff="BtFullScreenOff" stateClickOn="BtFullScreenClickOn" stateClickOff="BtFullScreenClickOff">
-<info>
-<![CDATA[Mettre la vidéo en plein écran]]>
-</info>
-</clip>
-<clip nameId="textTimer" x="120" y="13" color="0x444444"/>
-
-<clip nameId="menuSubtitle" x="330" y="-2" color="0x9ea6b8"/>
-<clip nameId="menuFlow" x="230" y="-2" color="0x9ea6b8"/>
-<clip nameId="textTitle" x="215" y="13" color="0x005ea8" />
-<clip nameId="btClose" stateOn="BtCloseOn" stateOff="BtCloseOff"/>
-<clip nameId="logo" layer1="Logo" x="0" y="5"/>
-<clip nameId="timeLine" x="2" y="2" round="false" width="756" height="5" color1="0xD6D6D6" color2="0x898989" color3="0x005ea8"/>
-<clip nameId="btSearch" x="507" y="12" width="103" height="32" stateOn="BtSearchOn" stateOff="BtSearchOff">
-<label>
-<![CDATA[<b>Recherche</b>]]>
-</label>
-</clip>
-<clip nameId="searchEngine">
-<label>
-<![CDATA[/recherche/?q=|&x=73&y=14&rub=0]]>
-</label>
-</clip>
-<clip nameId="btCopy" x="360" width="73" height="30" stateOn="BtCopyOn" stateOff="BtCopyOff">
-
-<label>
-<![CDATA[<b>Copier</b>]]>
-</label>
-</clip>
-<clip nameId="mcShare">
-<label>
-<![CDATA[Permalien :]]>
-</label>
-</clip>
-<clip nameId="mcBlog">
-<label>
-<![CDATA[Lecteur exportable :|allocine_blog]]>
-</label>
-</clip>
-<clip nameId="btScrollRight" stateOn="BtScrollRightOn" stateOff="BtScrollRightOff"/>
-<clip nameId="btScrollLeft" stateOn="BtScrollLeftOn" stateOff="BtScrollLeftOff"/>
-<clip nameId="btReplay" type="navCenter" action="replayHandler" y="115" stateOn="BtReplayOn" stateOff="BtReplayOff">
-
-<label>
-<![CDATA[<b>REJOUER</b>]]>
-</label>
-</clip>
-<clip nameId="btShare" type="navCenter" action="shareHandler" x="110" y="115" stateOn="BtShareOn" stateOff="BtShareOff">
-<label>
-<![CDATA[<b>PARTAGER</b>]]>
-</label>
-</clip>
-<clip nameId="btBlog" type="navCenter" action="blogHandler" x="220 " y="115" stateOn="BtBlogOn" stateOff="BtBlogOff">
-<label>
-<![CDATA[<b>SUR MON BLOG</b>]]>
-</label>
-</clip>
-<clip nameId="btVideoSim" type="navCenter" action="videoSimHandler" x="330" y="115" stateOn="BtVideoSimOn" stateOff="BtVideoSimOff">
-<label>
-<![CDATA[<b>VIDÉOS <br>SIMILAIRES</b>]]>
-
-</label>
-</clip>
-<clip nameId="titleEndScreen" >
-<label>
-<![CDATA[<b>Choisissez votre prochaine vidéo </b>]]>
-</label>
-</clip>
-<clip nameId="textError" >
-<label>
-<![CDATA[<b>Erreur : cette vidéo n'est pas disponible.</b>]]>
-</label>
-</clip>
-<clip nameId="errorAdBlock" >
-<label>
-<![CDATA[Cette vidéo ne se lance pas ?<br>Vous avez probablement activé une extension comme AdBlock dans votre navigateur. Merci de la désactiver et de recharger la page afin de lire cette vidéo.<br>Si votre problème persiste, n’hésitez pas à <b><a href='http://allocine.uservoice.com/forums/30575-allocin-v6-probl-mes-et-erreurs'>nous contacter</a></b> !]]>
-</label>
-</clip>
-
-</AcVisionSkin>
-<services>
-<!--service className="McXitiService" nameService="xiti" file="services/xitiService.swf" pathConfig="http://www.allocine.fr/Modules/video/xml/XiTiTag.xml" /-->
-<service className="McVastService" nameService="vast" file="services/vastService.swf" pathConfig="http://smart.allocine.fr/call/pubx/10936/[part]/7292/S/[timestamp]/[target]" >
-<![CDATA[<b>Publicité</b> : votre vidéo commence dans | secondes]]>
-</service>
-<!---->
-</services>
-</AcVision>
\ No newline at end of file
--- a/test/integration/allocine_dossier_independant/css/LdtPlayer.css	Tue Apr 03 20:30:12 2012 +0200
+++ b/test/integration/allocine_dossier_independant/css/LdtPlayer.css	Fri Apr 06 16:49:32 2012 +0200
@@ -144,212 +144,11 @@
   height:0px;
   display:none
 }
-
-/* player */
-.Ldt-controler {
-  font-size: 10px;
-  background:url('img-cinecast/controlbarbgd.png') repeat-x transparent ;
-  height: 34px;
-}
-
-.Ldt-LeftPlayerControls {
-  float:left;
-}
-
-.Ldt-RightPlayerControls {
-  float: right;
-}
-
-.Ldt-Ctrl-button {
-  float: left;
-  width: 30px; height: 25px;
-  background: url('img-cinecast/player-sprites.png');
-  cursor: pointer;
-}
-
-.Ldt-Ctrl-spacer {
-    float: left; width: 2px; background: url(img-cinecast/controlbarspacer.png); height: 34px;
-}
-
-.Ldt-CtrlPlay {
-  margin: 4px 15px;
-}
-
-.Ldt-CtrlPlay-PlayState {
-  background-position: 0 0;
-}
-
-.Ldt-CtrlPlay-PlayState:hover {
-  background-position: 0 -25px;
-}
-
-.Ldt-CtrlPlay-PlayState:active {
-  background-position: 0 -50px;
-}
-
-.Ldt-CtrlPlay-PauseState {
-  background-position: -30px 0;
-}
-
-.Ldt-CtrlPlay-PauseState:hover {
-  background-position: -30px -25px;
-}
-
-.Ldt-CtrlPlay-PauseState:active {
-  background-position: -30px -50px;
-}
-
-
-.Ldt-CtrlAnnotate {
-  margin: 4px 2px;
-  background-position: -60px 0;
-}
-
-.Ldt-CtrlAnnotate:hover {
-  background-position: -60px -25px;
-}
-
-.Ldt-CtrlAnnotate:active {
-  background-position: -60px -50px;
-}
-
-.Ldt-CtrlSearch {
-  margin: 4px 2px;
-  background-position: -90px 0;
-}
-
-.Ldt-CtrlSearch:hover {
-  background-position: -90px -25px;
-}
-
-.Ldt-CtrlSearch:active {
-  background-position: -90px -50px;
-}
-
-.LdtSearch {
-  display: none;
-  width: 165px;
-  height: 25px;
-  border: 1px;
-  border-color: #CFCFCF;
-  float: left;
-  text-align: center;
-}
-
-.Ldt-Time {
-  float: left;
-  margin: 8px 5px;
-  font-size: 12px;
-  font-family: Arial, Verdana, sans-serif;
-  color: #ffffff;
-}
-
-.Ldt-ElapsedTime {
-  float: left;
-}
-
-.Ldt-TimeSeparator {
-  margin: 0 4px;      
-  float: left;
-}
-
-.Ldt-TotalTime {
-  float: left;
-}
-
-.Ldt-CtrlSound {
-  margin: 4px 2px;
-}
-
-.Ldt-CtrlSound-Full {
-  background-position: -120px 0;
-}
-
-.Ldt-CtrlSound-Full:hover {
-  background-position: -120px -25px;
-}
-
-.Ldt-CtrlSound-Full:active {
-  background-position: -120px -50px;
-}
-
-.Ldt-CtrlSound-Mute {
-  background-position: -150px 0;
-}
-
-.Ldt-CtrlSound-Mute:hover {
-  background-position: -150px -25px;
-}
-
-.Ldt-CtrlSound-Mute:active {
-  background-position: -150px -50px;
-}
-
-.Ldt-CtrlSound-Half {
-  background-position: -180px 0;
-}
-
-.Ldt-CtrlSound-Half:hover {
-  background-position: -180px -25px;
-}
-
-.Ldt-CtrlSound-Half:active {
-  background-position: -180px -50px;
-}
-
-.Ldt-Ctrl-Volume-Control {
-  display: none;
-  position: absolute;
-  background:url('img-cinecast/controlbarbgd.png') repeat-x transparent ;
-  height: 34px;
-  width: 100px; top: 30px; right: 0; z-index: 100;
-  padding: 0 2px;
-}
-
-.Ldt-Ctrl-Volume-Bar { 
-    height: 5px; margin: 13px 3px 0; background: #cccccc; border: 1px solid #999999; border-radius: 2px;
-}
-
-.Ldt-Ctrl-Volume-Cursor {
-    position: absolute; top: 6px; width: 6px; height: 19px; background: #a8a8a8; border: 1px solid #999999; border-radius: 2px;
-    cursor: pointer;
-}
-
-.Ldt-Ctrl-Volume-Cursor:hover {
-     background: #cccccc;
-}
-
-.Ldt-Ctrl-Volume-Cursor.ui-draggable-dragging {
-    background: #999999;
-}
     
 .Ldt-cleaner {
   clear:both;
 }
 
-/* Arrow Widget */
-.Ldt-arrowWidget {
-  position: relative;
-
-  height:16px;
-  width:27px;
-  margin-bottom: -3px;
-  z-index: 4;
-  left: 0%;
-}
-
-.Ldt-arrowLeftEdge {
-  background:url('imgs/left_edge_arrow.png') no-repeat scroll 0 0 transparent ;
-}
-
-.Ldt-arrowCenter {
-  background:url('imgs/arrow.png') no-repeat scroll 0 0 transparent ;
-}
-
-.Ldt-arrowRightEdge {
-  background:url('imgs/right_edge_arrow.png') no-repeat scroll 0 0 transparent ;
-}
-
 .cleaner {
   clear:both;
 }
@@ -407,53 +206,7 @@
     max-width: 140px; max-height: 70px; margin: 0 20px;
 }
 
-/* slider */
-.Ldt-SliderMinimized {
-  height: 6px;
-}
 
-.Ldt-SliderMaximized {
-  height: 11px;
-}
-
-.Ldt-sliderElementMinimized {
-  width: 100%;
-  height: 5px;
-}
-
-.Ldt-sliderElementMaximized {
-  width: 100%;
-  height: 10px;
-}
-
-.Ldt-sliderBackground  {
-  background-color: #333333;
-  position: absolute;
-  z-index: 2;
-  bottom: 1px;
-  width: 100%;
-  height: 5px;
-
-}
-
-.Ldt-sliderForeground  {
-  background-color: #747474;
-  z-index: 2;
-  width: 0px;
-  position: absolute;
-  bottom: 1px;
-  height: 5px;
-}
-
-.Ldt-sliderPositionMarker {
-  position: absolute;
-  z-index: 100;
-  background: url('img-cinecast/sliderpos.png');
-  height: 10px !important;
-  width: 10px !important;
-  bottom: 0;
-  cursor: pointer;
-}
 
 /* sparkline widget */
 .Ldt-sparklineWidget {
@@ -677,7 +430,6 @@
 }
 
 .Ldt-AnnotationsList-li {
-  cursor: pointer;
   float: left; width: 100%; clear: both;
   margin: 2px 0; padding: 2px 0;
   position: relative;
@@ -693,6 +445,10 @@
   text-decoration: none;
 }
 
+.Ldt-AnnotationsListWidget a:hover {
+  text-decoration: underline;
+}
+
 .Ldt-AnnotationsList-Thumbnail {
     border: none;
     float: left;
@@ -712,17 +468,18 @@
 .Ldt-AnnotationsList-Title {
   font-size: 13px;
   margin: 0 0 2px 80px;
-}
-
-.Ldt-AnnotationsList-Title a {
   color: #ffffff;
 }
+
 .Ldt-AnnotationsList-Description {
-    color: #dddddd;
   font-style: italic;
   margin: 0 0 2px 80px;
 }
 
+.Ldt-AnnotationsList-Description a {
+    color: #dddddd;
+}
+
 .Ldt-AnnotationsList-Tags {
     float: left; clear: both; padding: 0; margin: 2px 0 0 80px; list-style: none;
 }
@@ -741,7 +498,7 @@
 }
 
 .Ldt-createAnnotation-moar-keywordz {
-    float: right; font-size: 13px; color: #ffffff; text-shadow: 1px 1px 1px #000000;
+    float: right; font-size: 13px; color: #ffffff; text-shadow: 1px 1px 1px #000000; cursor: pointer;
     width: 140px; height: 23px; background: url(img-cinecast/moar.png); border: none; margin: 0 15px;
 }
 
--- a/test/integration/allocine_dossier_independant/js/LdtPlayer-release.js	Tue Apr 03 20:30:12 2012 +0200
+++ b/test/integration/allocine_dossier_independant/js/LdtPlayer-release.js	Fri Apr 06 16:49:32 2012 +0200
@@ -996,7 +996,7 @@
 "'")+",'"}).replace(d.evaluate||null,function(a,b){return"');"+b.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};var n=function(a){this._wrapped=a};b.prototype=n.prototype;var u=function(a,c){return c?b(a).chain():a},J=function(a,c){n.prototype[a]=function(){var a=i.call(arguments);H.call(a,this._wrapped);return u(c.apply(b,
 a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];n.prototype[a]=function(){b.apply(this._wrapped,arguments);return u(this._wrapped,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];n.prototype[a]=function(){return u(b.apply(this._wrapped,arguments),this._chain)}});n.prototype.chain=function(){this._chain=true;return this};n.prototype.value=function(){return this._wrapped}}).call(this);
 /* main file */
-
+// Why is it called main ? It only loads the libs !
 
 if ( window.IriSP === undefined && window.__IriSP === undefined ) { 
   /**
@@ -1016,23 +1016,39 @@
 IriSP._ = window._.noConflict();
 IriSP.underscore = IriSP._;
 
-IriSP.loadLibs = function( libs, config, metadata_url, callback ) {
+IriSP.getLib = function(lib) {
+    return (
+        IriSP.libFiles.useCdn && typeof IriSP.libFiles.cdn[lib] == "string"
+        ? IriSP.libFiles.cdn[lib]
+        : (
+            typeof IriSP.libFiles.locations[lib] == "string"
+            ? IriSP.libFiles.locations[lib]
+            : (
+                typeof IriSP.libFiles.inDefaultDir[lib] == "string"
+                ? IriSP.libFiles.defaultDir + IriSP.libFiles.inDefaultDir[lib]
+                : null
+            )
+        )
+    )
+}
+
+IriSP.loadLibs = function( config, metadata_url, callback ) {
     // Localize jQuery variable
 		IriSP.jQuery = null;
-    var $L = $LAB.script(libs.jQuery).script(libs.swfObject).wait()
-                .script(libs.jQueryUI);
+    var $L = $LAB.script(IriSP.getLib("jQuery")).script(IriSP.getLib("swfObject")).wait()
+                .script(IriSP.getLib("jQueryUI"));
                                    
     if (config.player.type === "jwplayer" || config.player.type === "allocine") {
       // load our popcorn.js lookalike
-      $L.script(libs.jwplayer);
+      $L.script(IriSP.getLib("jwplayer"));
     } else {
       // load the real popcorn
-      $L.script(libs.popcorn).script(libs["popcorn.code"]);
+      $L.script(IriSP.getLib("popcorn")).script(IriSP.getLib("popcorn.code"));
       if (config.player.type === "youtube") {
-        $L.script(libs["popcorn.youtube"]);
+        $L.script(IriSP.getLib("popcorn.youtube"));
       } 
       if (config.player.type === "vimeo")
-        $L.script(libs["popcorn.vimeo"]);
+        $L.script(IriSP.getLib("popcorn.vimeo"));
       
       /* do nothing for html5 */
     }       
@@ -1042,10 +1058,10 @@
       if (config.gui.widgets[idx].type === "PolemicWidget" ||
           config.gui.widgets[idx].type === "StackGraphWidget" ||
           config.gui.widgets[idx].type === "SparklineWidget") {        
-        $L.script(libs.raphael);
+        $L.script(IriSP.getLib("raphael"));
       }
       if (config.gui.widgets[idx].type === "TraceWidget") {
-          $L.script(libs.tracemanager)
+          $L.script(IriSP.getLib("tracemanager"))
       }
     }
     
@@ -1053,7 +1069,7 @@
     /*
     for (var idx in config.modules) {
       if (config.modules[idx].type === "PolemicWidget")
-        $L.script(libs.raphaelJs);
+        $L.script(IriSP.getLib("raphaelJs"));
     }
     */
 
@@ -1063,7 +1079,7 @@
       var css_link_jquery = IriSP.jQuery( "<link>", { 
         rel: "stylesheet", 
         type: "text/css", 
-        href: libs.cssjQueryUI,
+        href: IriSP.getLib("cssjQueryUI"),
         'class': "dynamic_css"
       } );
       var css_link_custom = IriSP.jQuery( "<link>", { 
@@ -1089,9 +1105,9 @@
 IriSP.annotation_template = "{{! template for an annotation displayed in a segmentWidget }}<div title='{{divTitle}}' id='{{id}}'	class='Ldt-iri-chapter Ldt-TraceMe' 	style='left: {{startPixel}}px;          width: {{pxWidth}}px;          background-color:{{hexa_color}};'    data-seek='{{seekPlace}}'    thumbnail-url='{{thumbnailUrl}}'	></div>";
 IriSP.annotationWidget_template = "{{! template for the annotation widget }}<div class='Ldt-AnnotationsWidget'>  <!-- ugly div because we want to have a double border -->  <div class='Ldt-Annotation-DoubleBorder'>      <div class='Ldt-AnnotationContent'>          <div class='Ldt-AnnotationShareIcons'>         <a target='_blank' class='Ldt-fbShare Ldt-TraceMe' title='{{i10n.share_on}} Facebook'></a>         <a target='_blank' class='Ldt-TwShare Ldt-TraceMe' title='{{i10n.share_on}} Twitter'></a>         <a target='_blank'  class='Ldt-GplusShare Ldt-TraceMe' title='{{i10n.share_on}} Google+'></a>        </div>        <div class='Ldt-SaTitle'></div>        <div class='Ldt-SaDescription'></div>        <div class='Ldt-SaKeywords'></div>    </div>  </div></div>";
 IriSP.annotation_loading_template = "{{! template shown while the annotation widget is loading }}<div id='Ldt-load-container'><div id='Ldt-loader'>&nbsp;</div> Chargement... </div>";
-IriSP.annotationsListWidget_template = "{{! template for the annotation list widget }}<div class='Ldt-AnnotationsListWidget'>    <ul class='Ldt-AnnotationsList-ul'>        {{#annotations}}        <li id='Ldt-Annotation-li-{{id}}' class='Ldt-AnnotationsList-li Ldt-TraceMe'>            <img class='Ldt-AnnotationsList-Thumbnail' src='{{thumbnail}}' />            <div class='Ldt-AnnotationsList-Duration'>                <span class='Ldt-AnnotationsList-Begin'>{{begin}}</span>                <span class='Ldt-AnnotationsList-TcSeparator'>-</span>                <span class='Ldt-AnnotationsList-End'>{{end}}</span>            </div>            <div class='Ldt-AnnotationsList-Title'>            {{! if the url is not present, it means that the annotation exists            in the current project }}            {{^url}} <a href='#id={{id}}'> {{/url}}            {{! otherwise link to url }}            {{#url}} <a href='{{url}}'> {{/url}}                {{title}}            </a>            </div>            <div class='Ldt-AnnotationsList-Description'>                {{desc}}            </div>            {{#tags.length}}            <ul class='Ldt-AnnotationsList-Tags'>                {{#tags}}                <li class='Ldt-AnnotationsList-Tag-Li'>                    <div class='Ldt-AnnotationsList-Tag-Div'>{{.}}</div>                </li>                {{/tags}}            </ul>            {{/tags.length}}        </li>        {{/annotations}}    </ul></div>";
+IriSP.annotationsListWidget_template = "{{! template for the annotation list widget }}<div class='Ldt-AnnotationsListWidget'>    <ul class='Ldt-AnnotationsList-ul'>        {{#annotations}}        <li id='Ldt-Annotation-li-{{id}}' class='Ldt-AnnotationsList-li Ldt-TraceMe'>            {{^url}} <a href='#id={{id}}'> {{/url}}            {{! otherwise link to url }}            {{#url}} <a href='{{url}}'> {{/url}}                <img class='Ldt-AnnotationsList-Thumbnail' src='{{thumbnail}}' />            </a>            <div class='Ldt-AnnotationsList-Duration'>                <span class='Ldt-AnnotationsList-Begin'>{{begin}}</span>                <span class='Ldt-AnnotationsList-TcSeparator'>-</span>                <span class='Ldt-AnnotationsList-End'>{{end}}</span>            </div>            <div class='Ldt-AnnotationsList-Title'>            {{! if the url is not present, it means that the annotation exists            in the current project }}                {{title}}            </div>            <div class='Ldt-AnnotationsList-Description'>            {{^url}} <a href='#id={{id}}'> {{/url}}            {{! otherwise link to url }}            {{#url}} <a href='{{url}}'> {{/url}}                {{desc}}                </a>            </div>            {{#tags.length}}            <ul class='Ldt-AnnotationsList-Tags'>                {{#tags}}                <li class='Ldt-AnnotationsList-Tag-Li'>                    <div class='Ldt-AnnotationsList-Tag-Div'>{{.}}</div>                </li>                {{/tags}}            </ul>            {{/tags.length}}        </li>        {{/annotations}}    </ul></div>";
 IriSP.arrowWidget_template = "<div class='Ldt-arrowWidget Ldt-arrowLeftEdge'></div>";
-IriSP.createAnnotationWidget_template = "{{! template for the annotation creation widget }}<div class='Ldt-createAnnotationWidget'>    <!-- ugly div because we want to have a double border -->    <div class='Ldt-createAnnotation-DoubleBorder'>        <div class='Ldt-createAnnotation-screen Ldt-createAnnotation-startScreen'>            <div style='margin-bottom: 7px; overflow: auto;'>                <div class='Ldt-createAnnotation-Title'></div>                <div class='Ldt-createAnnotation-TimeFrame'></div>                {{^cinecast_version}} <div class='Ldt-createAnnotation-Minimize Ldt-TraceMe' title='Cancel'></div>                {{/cinecast_version}}            </div>            <div class='Ldt-createAnnotation-Container'>                {{#show_from_field}}                <label>{{l10n.your_name}}&nbsp;: </label><input class='Ldt-createAnnotation-userName Ldt-TraceMe' value='{{user_name}}' />                {{/show_from_field}}                <textarea class='Ldt-createAnnotation-Description Ldt-TraceMe'></textarea>                <div class='Ldt-createAnnotation-userAvatar Ldt-TraceMe'>                    {{^user_avatar}} <img src='https://si0.twimg.com/sticky/default_profile_images/default_profile_1_normal.png'></img>                    {{/user_avatar}}                    {{#user_avatar}} <img src='{{ user_avatar }}'></img>                    {{/user_avatar}}                </div>                <div class='Ldt-createAnnotation-profileArrow'></div>            </div>            <button class='Ldt-createAnnotation-submitButton Ldt-TraceMe'>{{l10n.submit}}</button>            {{#keywords.length}}            <div class='Ldt-createAnnotation-btnblock Ldt-createAnnotation-keywords'>                <label>{{l10n.add_keywords}} :</label>                <ul class='Ldt-floatList'>                {{#keywords}}                    <li><button class='Ldt-createAnnotation-keyword-button Ldt-TraceMe'>{{.}}</button></li>                {{/keywords}}                </ul>            </div>            {{#random_keywords}}                <button class='Ldt-createAnnotation-moar-keywordz'>{{l10n.moar_tagz}}</button>            {{/random_keywords}}            {{/keywords.length}}            {{#polemic_mode}}            {{#polemics.length}}            <div class='Ldt-createAnnotation-btnblock Ldt-createAnnotation-polemics'>                <label>{{l10n.add_polemic_keywords}} :</label>                <ul class='Ldt-floatList'>                {{#polemics}}                    <li><button class='Ldt-createAnnotation-polemic-{{className}} Ldt-createAnnotation-polemic-button Ldt-TraceMe'>{{keyword}}</button></li>                {{/polemics}}                </ul>            </div>            {{/polemics.length}}            {{/polemic_mode}}        </div>        <div class='Ldt-createAnnotation-screen Ldt-createAnnotation-waitScreen' style='display: none; text-align: center'>            <div class='Ldt-createAnnotation-spinner'></div>            {{l10n.wait_while_processed}}        </div>        <div class='Ldt-createAnnotation-screen Ldt-createAnnotation-errorScreen' style='display: none; text-align: center'>            <div class='Ldt-createAnnotation-Minimize' title='Hide'></div>            {{l10n.error_while_contacting}}        </div>        <div class='Ldt-createAnnotation-screen Ldt-createAnnotation-endScreen' style='display: none'>            <div class='Ldt-createAnnotation-Minimize' title='Hide'></div>            {{l10n.annotation_saved}}            <br>            {{^disable_share}}            {{l10n.share_annotation}}            <div style='margin-top: 12px; text-align: center;'>                <a target='_blank' class='Ldt-createAnnotation-endScreen-TweetLink Ldt-TraceMe'></a>                <a target='_blank' class='Ldt-createAnnotation-endScreen-FbLink Ldt-TraceMe'></a>                <a target='_blank' class='Ldt-createAnnotation-endScreen-GplusLink Ldt-TraceMe'></a>            </div>            {{/disable_share}}        </div>        <div class='Ldt-floatClear'></div>    </div></div>";
+IriSP.createAnnotationWidget_template = "{{! template for the annotation creation widget }}<div class='Ldt-createAnnotationWidget'>    <!-- ugly div because we want to have a double border -->    <div class='Ldt-createAnnotation-DoubleBorder'>        <div class='Ldt-createAnnotation-screen Ldt-createAnnotation-startScreen'>            <div style='margin-bottom: 7px; overflow: auto;'>                <div class='Ldt-createAnnotation-Title'></div>                <div class='Ldt-createAnnotation-TimeFrame'></div>                {{^cinecast_version}} <div class='Ldt-createAnnotation-Minimize Ldt-TraceMe' title='Cancel'></div>                {{/cinecast_version}}            </div>            <div class='Ldt-createAnnotation-Container'>                {{#show_from_field}}                <label>{{l10n.your_name}}&nbsp;: </label><input class='Ldt-createAnnotation-userName Ldt-TraceMe' value='{{user_name}}' />                {{/show_from_field}}                <textarea class='Ldt-createAnnotation-Description Ldt-TraceMe'></textarea>                <div class='Ldt-createAnnotation-userAvatar Ldt-TraceMe'>                    {{^user_avatar}} <img src='https://si0.twimg.com/sticky/default_profile_images/default_profile_1_normal.png'></img>                    {{/user_avatar}}                    {{#user_avatar}} <img src='{{ user_avatar }}'></img>                    {{/user_avatar}}                </div>                <div class='Ldt-createAnnotation-profileArrow'></div>            </div>            <button class='Ldt-createAnnotation-submitButton Ldt-TraceMe'>{{l10n.submit}}</button>            {{#tags.length}}            <div class='Ldt-createAnnotation-btnblock Ldt-createAnnotation-keywords'>                <label>{{l10n.add_keywords}} :</label>                <ul class='Ldt-floatList'>                {{#tags}}                    <li><button class='Ldt-createAnnotation-keyword-button Ldt-TraceMe' tag-id='{{id}}'>{{meta.description}}</button></li>                {{/tags}}                </ul>            </div>            {{#random_tags}}                <button class='Ldt-createAnnotation-moar-keywordz'>{{l10n.more_tags}}</button>            {{/random_tags}}            {{/tags.length}}            {{#polemic_mode}}            {{#polemics.length}}            <div class='Ldt-createAnnotation-btnblock Ldt-createAnnotation-polemics'>                <label>{{l10n.add_polemic_keywords}} :</label>                <ul class='Ldt-floatList'>                {{#polemics}}                    <li><button class='Ldt-createAnnotation-polemic-{{className}} Ldt-createAnnotation-polemic-button Ldt-TraceMe'>{{keyword}}</button></li>                {{/polemics}}                </ul>            </div>            {{/polemics.length}}            {{/polemic_mode}}        </div>        <div class='Ldt-createAnnotation-screen Ldt-createAnnotation-waitScreen' style='display: none; text-align: center'>            <div class='Ldt-createAnnotation-spinner'></div>            {{l10n.wait_while_processed}}        </div>        <div class='Ldt-createAnnotation-screen Ldt-createAnnotation-errorScreen' style='display: none; text-align: center'>            <div class='Ldt-createAnnotation-Minimize' title='Hide'></div>            {{l10n.error_while_contacting}}        </div>        <div class='Ldt-createAnnotation-screen Ldt-createAnnotation-endScreen' style='display: none'>            <div class='Ldt-createAnnotation-Minimize' title='Hide'></div>            {{l10n.annotation_saved}}            <br>            {{^disable_share}}            {{l10n.share_annotation}}            <div style='margin-top: 12px; text-align: center;'>                <a target='_blank' class='Ldt-createAnnotation-endScreen-TweetLink Ldt-TraceMe'></a>                <a target='_blank' class='Ldt-createAnnotation-endScreen-FbLink Ldt-TraceMe'></a>                <a target='_blank' class='Ldt-createAnnotation-endScreen-GplusLink Ldt-TraceMe'></a>            </div>            {{/disable_share}}        </div>        <div class='Ldt-floatClear'></div>    </div></div>";
 IriSP.createAnnotation_errorMessage_template = "<p class='Ldt-createAnnotation-errorMessage'>  {{l10n.empty_annotation}}</p>";
 IriSP.loading_template = "<div id='Ldt-loader' style='width: {{width}}px; height: {{height}}px;'>{{l10n.loading_wait}}</div>";
 IriSP.overlay_marker_template = "{{! the template for the small bars which is z-indexed over our segment widget }}<div class='Ldt-SegmentPositionMarker' style='background-color: #F7268E;'></div>";
@@ -1556,15 +1572,16 @@
   this._callbacks = {};
 };
 
-IriSP.DataLoader.prototype.get = function(url, callback) {
-
-  var base_url = url.split("&")[0]
+IriSP.DataLoader.prototype.get = function(url, callback, force_reload) {
+  var base_url = url.split("&")[0];
+  if (typeof force_reload != "undefined" && force_reload && this._cache.hasOwnProperty(base_url)) {
+      delete this._cache[base_url]
+  }
   if (this._cache.hasOwnProperty(base_url)) {
     callback(this._cache[base_url]);
   } else {  
     if (!this._callbacks.hasOwnProperty(base_url)) {
-      this._callbacks[base_url] = [];
-      this._callbacks[base_url].push(callback);   
+      this._callbacks[base_url] = [callback];
       /* we need a closure because this gets lost when it's called back */
   
       // uncomment you don't want to use caching.
@@ -1577,6 +1594,7 @@
                   for (i = 0; i < this._callbacks[base_url].length; i++) {
                     this._callbacks[base_url][i](this._cache[base_url]);                                  
                   }
+                  delete this._callbacks[base_url];
       };
       
       /* automagically choose between json and jsonp */
@@ -1614,8 +1632,11 @@
 IriSP.Serializer.prototype.currentMedia = function() {  
 };
 
-IriSP.Serializer.prototype.sync = function(callback) {  
-  callback.call(this, this._data);  
+IriSP.Serializer.prototype.getDuration = function() {  
+};
+
+IriSP.Serializer.prototype.sync = function(callback) {
+  this._DataLoader.get(this._url, callback, force_refresh);
 };
 
 IriSP.SerializerFactory = function(DataLoader) {
@@ -1648,157 +1669,145 @@
       return undefined;
   }
 };
-/* site.js - all our site-dependent config : player chrome, cdn locations, etc...*/
-
-IriSP.defaults = {};
-
-/* these objects are filled by configureDefaults. The function doesn't overwrite 
-   defaults that were originally defined by the user.
-*/
-IriSP.lib = {};
-
-/* We need to define those so that the individual settings can be overwritten */
-IriSP.widgetsDefaults = {};
-
-IriSP.paths = {};
-
-IriSP.libdir = "/metadataplayer/src/js/libs/";
-IriSP.jwplayer_swf_path = "../test/libs/player.swf";
-IriSP.platform_url = "http://192.168.56.101/pf";
-IriSP.default_templates_vars = { };
-
-IriSP.language = 'fr';
-
-/** ugly ugly ugly ugly - returns an object defining 
-    the paths to the libs
-    We need it that way cause it's called at runtime by
-    IriSP.configureDefaults.
-*/   
-IriSP.defaults.lib = function(libdir) {
-  if (IriSP.null_or_undefined(libdir))
-    libdir = IriSP.libdir;
-  
-  return { 
-//      jQuery : "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js",
-    jQuery : libdir + "jquery.min.js",
-//      jQueryUI : "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.17/jquery-ui.js",
-    jQueryUI : libdir + "jquery-ui.min.js",
-//      jQueryToolTip : "http://cdn.jquerytools.org/1.2.4/all/jquery.tools.min.js",
-    jQueryToolTip : libdir + "jquery.tools.min.js",
-//      swfObject : "http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js",
-    swfObject : libdir + "swfobject.js",
-//      cssjQueryUI : "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css",
-    cssjQueryUI : libdir + "jquery-ui.css",
-      popcorn : libdir + "popcorn.js",
-      jwplayer : libdir + "jwplayer.js",
-      popcornReplacement: libdir + "pop.js",
-      raphael: libdir + "raphael.js",
-      jquery_sparkline: libdir + "jquery.sparkline.js",
-      "popcorn.mediafragment" : libdir + "popcorn.mediafragment.js",
-      "popcorn.code" : libdir + "popcorn.code.js",
-      "popcorn.jwplayer": libdir + "popcorn.jwplayer.js",
-      "popcorn.youtube": libdir + "popcorn.youtube.js",
-      "tracemanager": libdir + "tracemanager.js"
-  };
-};
-
-//Configuration for the player and utility functions.
-// No need to have them configured at runtime
-IriSP.config = {};
-
-IriSP.config.shortener = {
-  // function to call to shorten an url.
-  //shortening_function : IriSP.platform_shorten_url
-};
-
-IriSP.defaults.widgetsDefaults = function(platform_url) { 
-  if (IriSP.null_or_undefined(platform_url))
-    platform_url = IriSP.platform_url;
-  
-  return {
-    "LayoutManager" : {spacer_div_height : "0px" },
-    "PlayerWidget" : {},
-    "AnnotationsWidget": {
-      "share_text" : "I'm watching ",     
-      "fb_link" : "http://www.facebook.com/share.php?u=",
-      "tw_link" : "http://twitter.com/home?status=",
-      "gplus_link" : ""
-      },
-    
+IriSP.language = 'en';
+
+IriSP.libFiles = {
+    defaultDir : "js/libs/",
+    inDefaultDir : {
+        jQuery : "jquery.min.js",
+        jQueryUI : "jquery-ui.min.js",
+        jQueryToolTip : "jquery.tools.min.js",
+        swfObject : "swfobject.js",
+        cssjQueryUI : "jquery-ui.css",
+        popcorn : "popcorn.js",
+        jwplayer : "jwplayer.js",
+        raphael : "raphael.js",
+        "popcorn.mediafragment" : "popcorn.mediafragment.js",
+        "popcorn.code" : "popcorn.code.js",
+        "popcorn.jwplayer" : "popcorn.jwplayer.js",
+        "popcorn.youtube" : "popcorn.youtube.js",
+        "tracemanager" : "tracemanager.js"
+    },
+    locations : {
+        // use to define locations outside defautl_dir
+    },
+    cdn : {
+        jQueryUI : "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.17/jquery-ui.js",
+        jQueryToolTip : "http://cdn.jquerytools.org/1.2.4/all/jquery.tools.min.js",
+        swfObject : "http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js",
+        cssjQueryUI : "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css"
+    },
+    useCdn : false
+}
+
+IriSP.widgetsDefaults = {
+    "LayoutManager" : {
+        spacer_div_height : 0
+    },
+    "PlayerWidget" : {
+        
+    },
+    "AnnotationsWidget" : {
+        "share_text" : "I'm watching "
+    },
     "TweetsWidget" : {
         default_profile_picture : "https://si0.twimg.com/sticky/default_profile_images/default_profile_1_normal.png",
-        tweet_display_period: 10000 // how long do we show a tweet ?
-        
+        tweet_display_period : 10000 // how long do we show a tweet ?
     },
     "SliderWidget" : {
-        minimize_period: 850 // how long does the slider stays maximized after the user leaves the zone ?
+        minimize_period : 850 // how long does the slider stays maximized after the user leaves the zone ?
+    },
+    "SegmentsWidget" : {
+        cinecast_version : false
     },
     "createAnnotationWidget" : {
-        keywords: ["#amateur", "#digital-studies"],
-        polemic_mode: true, /* enable polemics ? */
-        /* polemics - the corresponding class names defined in the css should be for instance :
-           Ldt-createAnnotation-polemic-positive for positive
-           Ldt-createAnnotation-polemic-equalequal for equalequal, etc.
-        */
-        polemics: [ { "className" : "positive", "keyword" : "++" }, { "className" : "negative", "keyword" : "--" }, { "className" : "reference", "keyword" : "==" }, { "className" : "question", "keyword" : "??" } ], 
-        cinecast_version: false, /* put to false to enable the platform version, true for the festival cinecast one. */
-        
+        tags : [
+            {
+                "id" : "digitalstudies",
+                "meta" : {
+                    "description" : "#digital-studies"
+                }
+            },
+            {
+                "id" : "amateur",
+                "meta" : {
+                    "description" : "#amateur"
+                },
+            }
+        ],
+        remote_tags : false,
+        random_tags : false,
+        show_from_field : false,
+        polemic_mode : true, /* enable polemics ? */
+        polemics : [{
+            "className" : "positive",
+            "keyword" : "++"
+        }, {
+            "className" : "negative",
+            "keyword" : "--"
+        }, {
+            "className" : "reference",
+            "keyword" : "=="
+        }, {
+            "className" : "question",
+            "keyword" : "??"
+        }],
+        cinecast_version : false, /* put to false to enable the platform version, true for the festival cinecast one. */
+
         /* where does the widget PUT the annotations - this is a mustache template. id refers to the id of the media ans is filled
-           by the widget. 
-        */
-        api_endpoint_template: platform_url + "/ldtplatform/api/ldt/annotations/{{id}}.json",
-        api_method: "PUT"
+         by the widget.
+         */
+        api_endpoint_template : "", // platform_url + "/ldtplatform/api/ldt/annotations/{{id}}.json",
+        api_method : "PUT"
     },
     "SparklineWidget" : {
-        column_width: 10 // the width of a column in pixels.
-    },
-    "Main" : {
-        autoplay: true
+       lineColor : "#7492b4",
+       fillColor : "#aeaeb8",
+       lineWidth : 2
     },
     "AnnotationsListWidget" : {
-        ajax_mode: true, /* use ajax to get information about the annotations.
-                           if set to false, only search in the annotations for the
-                           current project. */
+        ajax_mode : true, /* use ajax to get information about the annotations.
+         if set to false, only search in the annotations for the
+         current project. */
         /* the platform generates some funky urls. We replace them afterwards to point to the
-           correct place - this setting will probably be overwritten by the platform 
-           implementers.
-           Note that the player has to replace the variables between {{ and }} by its own values.
-        */
-        ajax_url: platform_url + "/ldtplatform/api/ldt/segments/{media}/{begin}/{end}", 
-        
-        ajax_granularity: 10000, /* how much ms should we look before and after the
-                                   current timecode */
-      
-        default_thumbnail: "/metadataplayer/src/css/imgs/video_sequence.png",
-        
-        project_url: platform_url + "/ldtplatform/ldt/front/player/" /* the beginning 
-                                                                        of a link to the
-                                                                        new front */
-    } 
-  };
-};
-
-/*
-Override this if you want to change the info the player receives about the user.
-It's typically overrided in server-side templates with user-specific data.
-*/
-IriSP.defaults.user = function() { return {
-      "name" : "Anonymous user",
-      "avatar" : IriSP.paths.imgs + "/user_default_icon.png"
+         correct place - this setting will probably be overwritten by the platform
+         implementers.
+         Note that the player has to replace the variables between {{ and }} by its own values.
+         */
+        ajax_url : "", //platform_url + "/ldtplatform/api/ldt/segments/{{media}}/{{begin}}/{{end}}",
+        ajax_granularity : 10000, /* how much ms should we look before and after the current timecode */
+        default_thumbnail : "http://ldt.iri.centrepompidou.fr/static/site/ldt/css/imgs/video_sequence.png",
+        project_url : "", //platform_url + "/ldtplatform/ldt/front/player/"
+        /* the beginning of a link to the new front */
+        cinecast_version : false,
+        refresh_interval : 10000
+    },
+    "StackGraphWidget" : {
+         defaultcolor : "#585858",
+         tags : [
+            {
+                "keywords" : [ "++" ],
+                "description" : "positif",
+                "color" : "#1D973D"
+            },
+            {
+                "keywords" : [ "--" ],
+                "description" : "negatif",
+                "color" : "#CE0A15"
+            },
+            {
+                "keywords" : [ "==" ],
+                "description" : "reference",
+                "color" : "#C5A62D"  
+            },
+            {
+                "keywords" : [ "??" ],
+                "description" : "question",
+                "color" : "#036AAE"
+            }
+        ],
+        streamgraph : false
     }
-};
-
-
-IriSP.defaults.paths = {
-//  "imgs": "/tweetlive/res/metadataplayer/src/css/imgs"
-  "imgs": "/metadataplayer/src/css/imgs"
-};
-
-
-IriSP.defaults.default_templates_vars = function() { 
-  return {
-  "img_dir" : IriSP.paths.imgs 
-  };
 }/* the widget classes and definitions */
 
 /**
@@ -1858,24 +1867,28 @@
       this.selector.attr("widget-type", this._config.type);
   }
   
-};
-
-// This functions checks for configuration options
-
-IriSP.Widget.prototype.checkOption = function(_name, _default) {
-    this[_name] = (
-        typeof this._config[_name] != "undefined"
-        ? this._config[_name]
-        : (
-            (typeof IriSP.widgetsDefaults[this._config.type] != "undefined" && IriSP.widgetsDefaults[this._config.type][_name] != "undefined")
-            ? IriSP.widgetsDefaults[this._config.type][_name]
-            : (
-                typeof _default != "undefined"
-                ? _default
-                : null
-            )
-        )
-    )
+  // Parsing Widget Defaults
+  var _this = this;
+  
+  if (typeof config.type == "string" && typeof IriSP.widgetsDefaults[config.type] == "object") {
+      IriSP._(IriSP.widgetsDefaults[config.type]).each(function(_v, _k) {
+          if (typeof config[_k] != "undefined") {
+              _this[_k] = config[_k];
+          } else {
+              _this[_k] = _v;
+          }
+      });
+  }
+  
+};
+
+
+IriSP.Widget.prototype.currentMedia = function() {
+    return this._serializer.currentMedia();
+}
+
+IriSP.Widget.prototype.getDuration = function() {
+    return this._serializer.getDuration();
 }
 
 /**
@@ -1969,7 +1982,7 @@
     this._widgets.push([widgetName, newDiv]);    
 
     var divTempl = "<div id='{{id}}' style='width: {{width}}px; position: relative; clear: both;'></div";
-    var spacerTempl = "<div id='{{spacer_id}}' style='width: {{width}}px; position: relative; height: {{spacer_div_height}};'></div";
+    var spacerTempl = "<div id='{{spacer_id}}' style='width: {{width}}px; position: relative; height: {{spacer_div_height}}px;'></div";
     
     var divCode = Mustache.to_html(divTempl, {id: newDiv, width: this._width});
     var spacerCode = Mustache.to_html(spacerTempl, {spacer_id: spacerDiv, width: this._width,
@@ -2221,46 +2234,10 @@
     return widget;
 };
 
-/** Go through the defaults to set a reasonable value */
-IriSP.configureDefaults = function(libdir, platform_url) {
-  /* the defaults configuration is messy and complicated. There are two things to know :
-     - we want to allow overwriting of defaults - that's why we have IriSP.widgetDefaults
-       and IriSP.defaults.widgetDefaults. The first is filled by the embedder and then fleshed out
-       with the contents of the first. We use underscore.defaults for that, but there's one problem with
-       this function : it doesn't work recursively.
-     - we need to compute some values at runtime instead of at compile time
-  */
-    
-  IriSP.lib = IriSP.underscore.defaults(IriSP.lib, IriSP.defaults.lib(libdir));
-  
-  /* get the factory defaults for the widgets and merge them with the default the user
-     may have defined 
-  */
-  var factory_defaults = IriSP.defaults.widgetsDefaults(platform_url);
-  for(var widget in factory_defaults) {
-  
-      /* create the object if it doesn't exists */
-      if (IriSP.null_or_undefined(IriSP.widgetsDefaults[widget]))
-        IriSP.widgetsDefaults[widget] = {};
-        
-      IriSP.widgetsDefaults[widget] = IriSP.underscore.defaults(IriSP.widgetsDefaults[widget], factory_defaults[widget]);
-  }
-  
-  IriSP.paths = IriSP.underscore.defaults(IriSP.paths, IriSP.defaults.paths);
-  IriSP.default_templates_vars = IriSP.underscore.defaults(IriSP.default_templates_vars, 
-                                       IriSP.defaults.default_templates_vars());
-
-  if (IriSP.null_or_undefined(IriSP.user))
-    IriSP.user = {};
-  
-  IriSP.user = IriSP.underscore.defaults(IriSP.user, IriSP.defaults.user());
-};
-
 /** single point of entry for the metadataplayer */
-IriSP.initPlayer = function(config, metadata_url, libdir, platform_url) {
+IriSP.initPlayer = function(config, metadata_url) {
     document.getElementById(config.gui.container).innerHTML = IriSP.templToHTML(IriSP.loading_template, config.gui);
-    IriSP.configureDefaults(libdir, platform_url);
-    IriSP.loadLibs(IriSP.lib, config, metadata_url,
+    IriSP.loadLibs(config, metadata_url,
       function() {   
               
               var layoutManager = new IriSP.LayoutManager(config.gui);
@@ -2384,14 +2361,26 @@
         ? options.directVideoPath
         : IriSP.get_aliased(IriSP.__jsonMetadata["medias"][0], ["href","url"])
     );
+    var _flashVars = {
+        "streamFMS" : true,
+        "adVast" : false,
+        "lg" : "fr_cinecast",
+        "autoPlay" : options.autoPlay,
+        "directVideoTitle" : "",
+        "urlAcData" : options.urlAcData,
+        "directVideoPath" : _videoUrl,
+        "host" : "http://allocine.fr"
+    }
     
-    var fv = "streamFMS=true&adVast=false&lg=fr_cinecast&autoPlay=" + options.autoPlay + "&directVideoTitle=&urlAcData=" + options.urlAcData + "&directVideoPath=" + _videoUrl + "&host=http://allocine.fr";
-//    console.log("fv = " + fv);
+    if (typeof IriSP.__jsonMetadata["medias"][0].meta == "object" && typeof IriSP.__jsonMetadata["medias"][0].meta.subtitles == "string") {
+        _flashVars.subTitlePath = IriSP.__jsonMetadata["medias"][0].meta.subtitles;
+    }
     
+
     var params = {
         "allowScriptAccess" : "always",
         "wmode": "opaque",
-        "flashvars" : fv,
+        "flashvars" : IriSP.jQuery.param(_flashVars),
         "allowfullscreen" : true
     };
     var atts = {
@@ -2763,11 +2752,6 @@
   IriSP.Widget.call(this, Popcorn, config, Serializer);
   this.__counter = 0;
   this.__oldList = [];
- 
-  this.checkOption('ajax_mode');
-  this.checkOption('project_url');
-  this.checkOption('default_thumbnail');
-  this.checkOption("cinecast_version", false);
   this.searchRe = null;
   this._ajax_cache = [];
   var _this = this;
@@ -2794,7 +2778,7 @@
 
 IriSP.AnnotationsListWidget.prototype.searchHandler = function(searchString) {
   this.searchRe = (searchString && searchString.length) ? IriSP.regexpFromText(searchString) : null;
-  if (this.ajax_mode) {
+  if (this.ajax_mode && !this.cinecast_version) {
       var _this = this,
         _annotations = (
             this.searchRe === null
@@ -2824,17 +2808,21 @@
       
     this.selector.html(_html);
     
+    this.selector.find('.Ldt-AnnotationsList-Tag-Li').click(function() {
+        _this._Popcorn.trigger("IriSP.search.triggeredSearch", IriSP.jQuery(this).text().trim());
+    })
+    
     if (this.searchRe !== null) {
         this.selector.find(".Ldt-AnnotationsList-Title a, .Ldt-AnnotationsList-Description")
             .each(function()  {
                 var _$ = IriSP.jQuery(this);
-                _$.html(_$.text().replace(_this.searchRe, '<span class="Ldt-AnnotationsList-highlight">$1</span>'))
+                _$.html(_$.text().trim().replace(_this.searchRe, '<span class="Ldt-AnnotationsList-highlight">$1</span>'))
             })
     }
 };
 
 IriSP.AnnotationsListWidget.prototype.transformAnnotation = function(a) {
-    var _this = this
+    var _this = this;
     return {
         "id" : a.id,
         "title": this.cinecast_version ? IriSP.get_aliased(a.meta, ['creator_name', 'creator']) : a.content.title,
@@ -2843,6 +2831,7 @@
         "end" : IriSP.msToTime(a.end),
         "thumbnail" : (typeof a.meta == "object" && typeof a.meta.thumbnail == "string") ? a.meta.thumbnail : this.default_thumbnail,
         "url" : (typeof a.meta == "object" && typeof a.meta.url == "string") ? a.meta.url : null,
+        "created_at" :(typeof a.meta == "object" && typeof a.meta.created == "string") ? Date.parse(a.meta.created.replace(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}\:\d{2}\:\d{2}).*$/,"$2/$3/$1 $4 UTC+0000")) : null,
         "tags": typeof a.tags == "object"
             ? IriSP.underscore(a.tags)
                 .chain()
@@ -2901,7 +2890,6 @@
             this._Popcorn.trigger("IriSP.search.noMatchFound");
           }
     }
-  
   list = IriSP.underscore(list)
     .chain()
     .sortBy(function(_o) {
@@ -2909,16 +2897,16 @@
     })
     .first(10)
     .sortBy(function(_o) {
-        return (typeof _o.is_new != "undefined" && _o.is_new ? -1 : _o.iterator);
+        return (_this.cinecast_version ? - _o.created_at : _o.iterator);
     })
     .value();
-  
   var idList = IriSP.underscore.pluck(list, "id").sort();
 
   
-  if (!IriSP.underscore.isEqual(this.__oldList, idList) || typeof(force_redraw) !== "undefined") {
+  if (!IriSP.underscore.isEqual(this.__oldList, idList) || this.lastSearch !== this.searchRe || typeof(force_redraw) !== "undefined") {
     this.do_redraw(list);
     this.__oldList = idList;
+    this.lastSearch = this.searchRe;
   }
    /* save for next call */
   
@@ -2937,15 +2925,13 @@
   }
    
   
-  /* the platform gives us a special url - of the type : http://path/{media}/{begin}/{end}
+  /* the platform gives us a special url - of the type : http://path/{{media}}/{{begin}}/{{end}}
      we double the braces using regexps and we feed it to mustache to build the correct url
      we have to do that because the platform only knows at run time what view it's displaying.
   */
      
-  var platf_url = IriSP.widgetsDefaults.AnnotationsListWidget.ajax_url
-                                      .replace(/\{/g, '{{').replace(/\}/g, '}}');
-  var media_id = this._serializer.currentMedia()["id"];
-  var duration = this._serializer.getDuration();
+  var media_id = this.currentMedia()["id"];
+  var duration = this.getDuration();
   
   var begin_timecode = (Math.floor(tcode) - 300) * 1000;
   if (begin_timecode < 0)
@@ -2955,7 +2941,7 @@
   if (end_timecode > duration)
     end_timecode = duration;
   
-  var templ = Mustache.to_html(platf_url, {media: media_id, begin: begin_timecode,
+  var templ = Mustache.to_html(this.ajax_url, {media: media_id, begin: begin_timecode,
                                  end: end_timecode});
 
   /* we create on the fly a serializer to get the ajax */
@@ -2976,7 +2962,7 @@
   */
   var l = [];
   
-  var media = this._serializer.currentMedia()["id"];
+  var media = this.currentMedia()["id"];
   
   for (i = 0; i < annotations.length; i++) {
     var obj = this.transformAnnotation(annotations[i])
@@ -3009,13 +2995,30 @@
   
   var _this = this;
     
-    if (!this.ajax_mode) {
+    if (!this.ajax_mode || this.cinecast_version) {
         var _throttled = IriSP.underscore.throttle(function() {
             _this.drawList();
         }, 1500);
         _throttled();
         this._Popcorn.listen("IriSP.createAnnotationWidget.addedAnnotation", _throttled);
         this._Popcorn.listen("timeupdate", _throttled);
+        if (this.cinecast_version) {
+            window.setInterval(function() {
+                var _tmpSerializer = new IriSP.JSONSerializer(IriSP.__dataloader,  _this._config.metadata.src, true);
+                _tmpSerializer.sync(function(json) {
+                    IriSP.underscore(json.annotations).each(function(_a) {
+                        var _j = _this.annotations_ids.indexOf(_a.id);
+                        if (_j == -1) {
+                            _this._serializer._data.annotations.push(_a);
+                            _this.annotations_ids.push(_a.id);
+                        } else {
+                            _this._serializer._data.annotations[_j] = _a;
+                        }
+                        _throttled();
+                    });
+                }, true); // true is for force_refresh
+            },this.refresh_interval);
+        }
   } else {
     /* update the widget when the video has finished loading and when it's seeked and paused */
     this._Popcorn.listen("seeked", IriSP.wrap(this, this.ajaxRedraw));
@@ -3059,7 +3062,7 @@
     var keywords =  "";
     var begin = +annotation.begin / 1000;
     var end = +annotation.end / 1000;
-    var duration = this._serializer.getDuration();
+    var duration = this.getDuration();
     var tags = "";
     
     var title_templ = "{{title}} - ( {{begin}} - {{end}} )";
@@ -3091,15 +3094,10 @@
     this.selector.find(".Ldt-SaKeywords").text(tags);
     
     // update sharing buttons
-    var defaults = IriSP.widgetsDefaults.AnnotationsWidget;
-    var text = defaults.share_text;
-    var fb_link = defaults.fb_link;
-    var tw_link = defaults.tw_link;
-    var gplus_link = defaults.gplus_link;
     var url = document.location.href + "#id=" + annotation.id;
-    this.selector.find(".Ldt-fbShare").attr("href", IriSP.mkFbUrl(url, text));
-    this.selector.find(".Ldt-TwShare").attr("href", IriSP.mkTweetUrl(url, text));
-    this.selector.find(".Ldt-GplusShare").attr("href", IriSP.mkGplusUrl(url, text));
+    this.selector.find(".Ldt-fbShare").attr("href", IriSP.mkFbUrl(url, this.share_text));
+    this.selector.find(".Ldt-TwShare").attr("href", IriSP.mkTweetUrl(url, this.share_text));
+    this.selector.find(".Ldt-GplusShare").attr("href", IriSP.mkGplusUrl(url, this.share_text));
 };
 
 IriSP.AnnotationsWidget.prototype.clearWidget = function() {   
@@ -3213,7 +3211,7 @@
     var begin = (+ currentAnnotation.begin) / 1000;
     var end = (+ currentAnnotation.end) / 1000;
 
-    var duration = this._serializer.getDuration() / 1000;
+    var duration = this.getDuration() / 1000;
     var middle_time = (begin + end) / 2;
     var percents = middle_time / duration;
 
@@ -3275,7 +3273,7 @@
             "annotation_saved": "Thank you, your annotation has been saved.",
             "share_annotation": "Would you like to share it on social networks ?",
             "share_on": "Share on",
-            "moar_tags": "More tags"
+            "more_tags": "More tags"
         },
         "fr": {
             "submit": "Envoyer",
@@ -3289,7 +3287,7 @@
             "annotation_saved": "Merci, votre annotation a été enregistrée.",
             "share_annotation": "Souhaitez-vous la partager sur les réseaux sociaux ?",
             "share_on": "Partager sur",
-            "moar_tagz": "Plus de mots-clés"
+            "more_tags": "Plus de mots-clés"
         }
     }
 );
@@ -3297,16 +3295,6 @@
 IriSP.createAnnotationWidget = function(Popcorn, config, Serializer) {
   IriSP.Widget.call(this, Popcorn, config, Serializer);
   this._hidden = true;
-  
-  this.checkOption("keywords");
-  this.checkOption("polemic_mode", true);
-  this.checkOption("polemics");
-  this.checkOption("cinecast_version", false);
-  this.checkOption("api_endpoint_template");
-  this.checkOption("show_from_field", true);
-  this.checkOption("api_method");
-  this.checkOption("random_keywords");
-  this.checkOption("disable_share", false);
                          
   if (!IriSP.null_or_undefined(IriSP.user)) {
       if (!IriSP.null_or_undefined(IriSP.user.avatar)) {
@@ -3335,11 +3323,9 @@
 
 IriSP.createAnnotationWidget.prototype.draw = function() {
     var _this = this;
-    if (typeof this._config.remote_keywords != "undefined" && typeof this._config.remote_keywords) {
-        IriSP.jQuery.getJSON(this._config.remote_keywords, function(_json) {
-            _this.keywords = IriSP.underscore(_json.tags).map(function(_tag) {
-                return _tag.meta.description;
-            });
+    if (typeof this.remote_tags == "object") {
+        IriSP.jQuery.getJSON((typeof this.remote_tags.alias == "string" ? this.remote_tags.alias : this.remote_tags.url), function(_json) {
+            _this.tags = _json.tags;
             _this.drawCallback();
         });
     } else {
@@ -3361,11 +3347,11 @@
     this.showStartScreen();
   }
   
-  if (this.random_keywords) {
+  if (this.random_tags) {
       this.selector.find(".Ldt-createAnnotation-keywords li").hide();
-      this.showMoarTagz();
+      this.showMoreTags();
       this.selector.find('.Ldt-createAnnotation-moar-keywordz').click(function() {
-          _this.showMoarTagz();
+          _this.showMoreTags();
       })
   }
   // Add onclick event to both polemic and keywords buttons
@@ -3378,7 +3364,10 @@
   // js_mod is a custom event because there's no simple way to test for a js
   // change in a textfield.                    
   this.selector.find(".Ldt-createAnnotation-Description")
-               .bind("propertychange keyup input paste click js_mod", IriSP.wrap(this, this.handleTextChanges));
+               .bind("propertychange keyup input paste click js_mod", IriSP.wrap(this, this.handleTextChanges))
+          .keyup(function(_e) {
+              console.log(_e);
+          });
                
   /* the cinecast version of the player is supposed to pause when the user clicks on the button */
 
@@ -3439,8 +3428,8 @@
   }
 };
 
-IriSP.createAnnotationWidget.prototype.showMoarTagz = function() {
-    for (var j=0; j < this.random_keywords; j++) {
+IriSP.createAnnotationWidget.prototype.showMoreTags = function() {
+    for (var j=0; j < this.random_tags; j++) {
         var _jq = this.selector.find(".Ldt-createAnnotation-keywords li:hidden");
         if (_jq.length > 1) {
             IriSP.jQuery(_jq[Math.floor(_jq.length*Math.random())]).show();
@@ -3489,7 +3478,7 @@
     // block the arrow.
     this._Popcorn.trigger("IriSP.ArrowWidget.blockArrow");
     
-    var duration = this._serializer.getDuration();
+    var duration = this.getDuration();
         
     var currentChapter = this._serializer.currentChapitre(currentTime);
 
@@ -3648,23 +3637,28 @@
 
 IriSP.createAnnotationWidget.prototype.sendLdtData = function(contents, callback) {
   var _this = this;
-  var apiJson = {annotations : [{}], meta: {}};
+  var apiJson = {
+      format : "http://advene.org/ns/cinelab/",
+      annotations : [
+        {}
+        ],
+        meta: {}};
   var annotation = apiJson.annotations[0];
   
-  annotation.media = this._serializer.currentMedia()["id"];
+  annotation.media = this.currentMedia()["id"];
   
   if (this.cinecast_version) {   
       annotation.begin = Math.round(this._Popcorn.currentTime() * 1000);
       annotation.end = annotation.begin;      
   } else {
-    var duration = this._serializer.getDuration();    
+    var duration = this.getDuration();    
     annotation.begin = +((duration * (this.sliceLeft / 100)).toFixed(0));
     annotation.end = +((duration * ((this.sliceWidth + this.sliceLeft) / 100)).toFixed(0));
   }
 
   // boundary checks
   annotation.begin = Math.max(0, annotation.begin);
-  annotation.end = Math.min(this._serializer.getDuration(), annotation.end);
+  annotation.end = Math.min(this.getDuration(), annotation.end);
   
   annotation.type = ( this.cinecast_version ? "cinecast:UserAnnotation" : ( this._serializer.getContributions() || "" ));
   if (typeof(annotation.type) === "undefined")
@@ -3699,19 +3693,28 @@
   
   meta.created = Date().toString();
   
-  // All #hashtags are added to tags
-  var _tags = contents.toLowerCase().match(/#[^#\s]+\b/gim) || [];
-  this.selector.find('.Ldt-createAnnotation-keyword-button').each(function() {
-      var _tx = IriSP.jQuery(this).text(),
-        _rx = IriSP.regexpFromText(_tx);
+  var _tags = [];
+  IriSP._(this.tags).each(function(_v) {
+      var _rx = IriSP.regexpFromText(_v.meta.description);
         if (_rx.test(contents)) {
-            _tags.push(_tx.toLowerCase())
+            _tags.push(_v.id);
         }
   });
-  
+
+  if (typeof this.remote_tags == "object") {
+     _tags = IriSP._(_tags).map(function(_t) {
+         return _this.remote_tags.id + ':' + _t
+     });
+    if (typeof apiJson.imports == "undefined") {
+       apiJson.imports = [];
+    }
+    apiJson.imports.push({
+        "id" : this.remote_tags.id,
+        "url" : this.remote_tags.url
+    })
+  }
   annotation.tags = IriSP.underscore.uniq(_tags);
   
-  
   var jsonString = JSON.stringify(apiJson);
   var project_id = this._serializer._data.meta.id;
   
@@ -3756,6 +3759,7 @@
                     _this._serializer._data.annotations.push(annotation);
  
                     _this._Popcorn.trigger("IriSP.createAnnotationWidget.addedAnnotation", annotation);
+                    this.selector.find(".Ldt-createAnnotation-Description").val("");
                     callback(annotation);
       }), 
       error: 
@@ -3909,7 +3913,7 @@
   }
   
   // we get it at each call because it may change.
-  var duration = this._serializer.getDuration() / 1000; 
+  var duration = this.getDuration() / 1000; 
   var totalTime = IriSP.secondsToTime(duration);
   var elapsedTime = IriSP.secondsToTime(this._Popcorn.currentTime());
   
@@ -4117,7 +4121,7 @@
     var lineSize      = this.width;        // timeline pixel width 
     var nbrframes     = lineSize/frameSize;     // frame numbers
     var numberOfTweet   = 0;            // number of tweet overide later 
-    var duration      = this._serializer.getDuration();      // timescale width 
+    var duration      = this.getDuration();      // timescale width 
     var frameLength   = lineSize / frameSize;    // frame timescale  
     var timeline;
     var colors  = new Array("","#1D973D","#036AAE","#CE0A15","#C5A62D","#585858");
@@ -4451,7 +4455,7 @@
 IriSP.PolemicWidget.prototype.sliderUpdater = function() {
 
     var time = +this._Popcorn.currentTime();
-    var duration = this._serializer.getDuration();
+    var duration = this.getDuration();
     
     this.paperSlider.attr("width", time * (this.width / (duration / 1000)));
         
@@ -4523,7 +4527,6 @@
   this._Popcorn.listen("IriSP.search.closed", function() { self.searchFieldClosedHandler.call(self); });
   this._Popcorn.listen("IriSP.search.cleared", function() { self.searchFieldClearedHandler.call(self); });
   
-  this.checkOption("cinecast_version");
   this.defaultColors = ["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"]
 };
 
@@ -4540,7 +4543,7 @@
   this.positionMarker = this.selector.find(".Ldt-SegmentPositionMarker");
   
   this._Popcorn.listen("timeupdate", IriSP.wrap(this, this.positionUpdater));
-  var duration = this._serializer.getDuration();
+  var duration = this.getDuration();
   
   if (this.cinecast_version) {
       var segments_annotations = IriSP.underscore.filter(
@@ -4707,7 +4710,7 @@
 };
 
 IriSP.SegmentsWidget.prototype.positionUpdater = function() {  
-  var duration = this._serializer.getDuration() / 1000;
+  var duration = this.getDuration() / 1000;
   var time = this._Popcorn.currentTime();
   //var position 	= ((time / duration) * 100).toFixed(2);
   var position 	= ((time / duration) * 100).toFixed(2);
@@ -4934,7 +4937,7 @@
   
   var time = this._Popcorn.currentTime();
 
-  var duration = this._serializer.getDuration() / 1000;
+  var duration = this.getDuration() / 1000;
   var percents = time / duration;
   
   /* we do these complicated calculations to center exactly
@@ -4974,7 +4977,7 @@
   var width = this.sliderBackground.width();
   var relX = event.pageX - parentOffset.left;
 
-  var duration = this._serializer.getDuration() / 1000;
+  var duration = this.getDuration() / 1000;
   var newTime = ((relX / width) * duration).toFixed(2);
 
   this._Popcorn.currentTime(newTime);
@@ -4987,7 +4990,7 @@
   var width = this.sliderBackground.width();
   var relX = event.pageX - parentOffset.left;
 
-  var duration = this._serializer.getDuration() / 1000;
+  var duration = this.getDuration() / 1000;
   var newTime = ((relX / width) * duration).toFixed(2);
 
   this._Popcorn.currentTime(newTime);
@@ -5015,7 +5018,7 @@
 IriSP.SliderWidget.prototype.mouseOutHandler = function(event) {
 
   this.timeOutId = window.setTimeout(IriSP.wrap(this, this.minimizeOnTimeout),
-                                     IriSP.widgetsDefaults.SliderWidget.minimize_period);
+                                     this.minimize_period);
 };
 
 IriSP.SliderWidget.prototype.minimizeOnTimeout = function(event) {
@@ -5044,7 +5047,7 @@
   var width = this.sliderBackground.width();
   var relX = event.originalEvent.pageX - parentOffset.left;
 
-  var duration = this._serializer.getDuration() / 1000;
+  var duration = this.getDuration() / 1000;
   var newTime = ((relX / width) * duration).toFixed(2);
   this._Popcorn.currentTime(newTime);
   
@@ -5058,9 +5061,6 @@
   this._oldAnnotation = null;
   this._results = [];
   
-  this.lineColor = this._config.lineColor || "#7492b4";
-  this.fillColor = this._config.fillColor || "#aeaeb8";
-  this.lineWidth = this._config.lineWidth || 2;
   this.slices = this._config.slices || Math.floor(this.width/20);
   if (!this.width) {
       this.width = this.selector.width();
@@ -5072,7 +5072,6 @@
   if (this._config.background) {
       this.selector.css("background", this._config.background);
   }
-  this.checkOption('cinecast_version');
 };
 
 
@@ -5084,7 +5083,7 @@
 
 /** draw the sparkline using jquery sparkline */
 IriSP.SparklineWidget.prototype.draw = function() {
-    this.duration = this._serializer.getDuration();
+    this.duration = this.getDuration();
     this.paper = new Raphael(this.selector[0], this.width, this.height);
     var _this = this;
   
@@ -5111,7 +5110,7 @@
             _sliceDuration = Math.floor( this.duration / this.slices),
             _results = _(_.range(this.slices)).map(function(_i) {
                 return _(_annotations).filter(function(_a){
-                    return (_a.begin <= (1 + _i) * _sliceDuration) && (_a.end >= _i * _sliceDuration) && (!_this.cinecast_version || _a.type == "cinecast:UserAnnotation")
+                    return (_a.begin <= (1 + _i) * _sliceDuration) && (_a.end >= _i * _sliceDuration)
                 }).length;
             });
     }
@@ -5204,53 +5203,23 @@
 IriSP.StackGraphWidget.prototype = new IriSP.Widget();
 
 IriSP.StackGraphWidget.prototype.draw = function() {
-    var _ = IriSP._,
-        _defaultTags = [
-            {
-                "keywords" : [ "++" ],
-                "description" : "positif",
-                "color" : "#1D973D"
-            },
-            {
-                "keywords" : [ "--" ],
-                "description" : "negatif",
-                "color" : "#CE0A15"
-            },
-            {
-                "keywords" : [ "==" ],
-                "description" : "reference",
-                "color" : "#C5A62D"  
-            },
-            {
-                "keywords" : [ "??" ],
-                "description" : "question",
-                "color" : "#036AAE"
-            }
-        ],
-        _defaultDefColor = "#585858";
+    var _ = IriSP._;
     this.height =  this._config.height || 50;
     this.width = this.selector.width();
-    this.isStreamGraph = this._config.streamgraph || false;
-    this.sliceCount = this._config.slices || ~~(this.width/(this.isStreamGraph ? 20 : 5));
-    this.tagconf = (this._config.tags
-        ? this._config.tags
-        : _defaultTags);
-    IriSP._(this.tagconf).each(function(_a) {
+    this.slices = this._config.slices || ~~(this.width/(this.streamgraph ? 20 : 5));
+    _(this.tags).each(function(_a) {
         _a.regexp = new RegExp(_(_a.keywords).map(function(_k) {
             return _k.replace(/([\W])/gm,'\\$1');
         }).join("|"),"im")
     });
-    this.defaultcolorconf = (this._config.defaultcolor
-        ? this._config.defaultcolor
-        : _defaultDefColor);
     this.paper = new Raphael(this.selector[0], this.width, this.height);
     this.groups = [];
-    this.duration = this._serializer.getDuration();
+    this.duration = this.getDuration();
     
     var _annotationType = this._serializer.getTweets(),
-        _sliceDuration = ~~ ( this.duration / this.sliceCount),
+        _sliceDuration = ~~ ( this.duration / this.slices),
         _annotations = this._serializer._data.annotations,
-        _groupedAnnotations = _(_.range(this.sliceCount)).map(function(_i) {
+        _groupedAnnotations = _(_.range(this.slices)).map(function(_i) {
             return _(_annotations).filter(function(_a){
                 return (_a.begin <= (1 + _i) * _sliceDuration) && (_a.end >= _i * _sliceDuration)
             });
@@ -5259,25 +5228,25 @@
             return _g.length
         }).length,
         _scale = this.height / _max,
-        _width = this.width / this.sliceCount,
+        _width = this.width / this.slices,
         _showTitle = !this._config.excludeTitle,
         _showDescription = !this._config.excludeDescription;
     
     
-    var _paths = _(this.tagconf).map(function() {
+    var _paths = _(this.tags).map(function() {
         return [];
     });
     _paths.push([]);
     
-    for (var i = 0; i < this.sliceCount; i++) {
+    for (var i = 0; i < this.slices; i++) {
         var _group = _groupedAnnotations[i];
         if (_group) {
-            var _vol = _(this.tagconf).map(function() {
+            var _vol = _(this.tags).map(function() {
                 return 0;
             });
             for (var j = 0; j < _group.length; j++){
            var _txt = (_showTitle ? _group[j].content.title : '') + ' ' + (_showDescription ? _group[j].content.description : '')
-                var _tags = _(this.tagconf).map(function(_tag) {
+                var _tags = _(this.tags).map(function(_tag) {
                         return (_txt.search(_tag.regexp) == -1 ? 0 : 1)
                     }),
                     _nbtags = _(_tags).reduce(function(_a,_b) {
@@ -5295,20 +5264,20 @@
                 _nbneutre = _group.length - _nbtags,
                 _h = _nbneutre * _scale,
                 _base = this.height - _h;
-            if (!this.isStreamGraph) {
+            if (!this.streamgraph) {
                 this.paper.rect(i * _width, _base, _width - 1, _h ).attr({
                     "stroke" : "none",
-                    "fill" : this.defaultcolorconf
+                    "fill" : this.defaultcolor
                 });
             }
            _paths[0].push(_base);
-            for (var j = 0; j < this.tagconf.length; j++) {
+            for (var j = 0; j < this.tags.length; j++) {
                 _h = _vol[j] * _scale;
                 _base = _base - _h;
-                if (!this.isStreamGraph) {
+                if (!this.streamgraph) {
                     this.paper.rect(i * _width, _base, _width - 1, _h ).attr({
                         "stroke" : "none",
-                        "fill" : this.tagconf[j].color
+                        "fill" : this.tags[j].color
                     });
                 }
                 _paths[j+1].push(_base);
@@ -5320,13 +5289,13 @@
             for (var j = 0; j < _paths.length; j++) {
                 _paths[j].push(this.height);
             }
-            this.groups.push(_(this.tagconf).map(function() {
+            this.groups.push(_(this.tags).map(function() {
                 return 0;
             }));
         }
     }
     
-    if (this.isStreamGraph) {
+    if (this.streamgraph) {
         for (var j = _paths.length - 1; j >= 0; j--) {
             var _d = _(_paths[j]).reduce(function(_memo, _v, _k) {
                return _memo + ( _k
@@ -5335,7 +5304,7 @@
             },'') + 'L' + this.width + ' ' + _paths[j][_paths[j].length - 1] + 'L' + this.width + ' ' + this.height + 'L0 ' + this.height;
             this.paper.path(_d).attr({
                 "stroke" : "none",
-                "fill" : (j ? this.tagconf[j-1].color : this.defaultcolorconf)
+                "fill" : (j ? this.tags[j-1].color : this.defaultcolor)
             });
         }
     }
@@ -5361,7 +5330,7 @@
             _this.updateTooltip(_e);
             // Trace
             var relX = _e.pageX - _this.selector.offset().left;
-            var _duration = _this._serializer.getDuration();
+            var _duration = _this.getDuration();
             var _time = parseInt((relX / _this.width) * _duration);
             _this._Popcorn.trigger("IriSP.TraceWidget.MouseEvents", {
                 "widget" : "StackGraphWidget",
@@ -5402,10 +5371,10 @@
 };
 
 IriSP.StackGraphWidget.prototype.updateTooltip = function(event) {
-    var _segment = Math.max(0,Math.min(this.groups.length - 1, Math.floor(this.sliceCount * (event.pageX - this.selector.offset().left)/this.width))),
+    var _segment = Math.max(0,Math.min(this.groups.length - 1, Math.floor(this.slices * (event.pageX - this.selector.offset().left)/this.width))),
         _valeurs = this.groups[_segment],
-        _width = this.width / this.sliceCount,
-        _html = '<ul style="list-style: none; margin: 0; padding: 0;">' + IriSP._(this.tagconf).map(function(_tag, _i) {
+        _width = this.width / this.slices,
+        _html = '<ul style="list-style: none; margin: 0; padding: 0;">' + IriSP._(this.tags).map(function(_tag, _i) {
             return '<li style="clear: both;"><span style="float: left; width: 10px; height: 10px; margin: 2px; background: '
                 + _tag.color
                 + ';"></span>'
@@ -5415,7 +5384,7 @@
                 + '</li>';
         }).join('') + '</ul>';
     this.TooltipWidget._shown = false; // Vraiment, on ne peut pas ouvrir le widget s'il n'est pas encore ouvert ?
-    this.TooltipWidget.show('','',(_segment + .5)* this.width / this.sliceCount, 0);
+    this.TooltipWidget.show('','',(_segment + .5)* this.width / this.slices, 0);
     this.TooltipWidget.selector.find(".tip").html(_html);
     this.rectangleFocus.attr({
         "x" : _segment * _width,
@@ -5729,7 +5698,7 @@
     var title = IriSP.formatTweet(annotation.content.title);
     var img = annotation.content.img.src;
     if (typeof(img) === "undefined" || img === "" || img === "None") {
-      img = IriSP.widgetsDefaults.TweetsWidget.default_profile_picture;
+      img = this.default_profile_picture;
     }
 
     var imageMarkup = IriSP.templToHTML("<img src='{{src}}' alt='user image'></img>", 
@@ -5773,7 +5742,7 @@
   this.drawTweet(annotation);
 
   var time = this._Popcorn.currentTime();  
-  this._timeoutId = window.setTimeout(IriSP.wrap(this, this.clearPanel), IriSP.widgetsDefaults.TweetsWidget.tweet_display_period);
+  this._timeoutId = window.setTimeout(IriSP.wrap(this, this.clearPanel), this.tweet_display_period);
 };
 
 
@@ -5872,7 +5841,7 @@
 /** load JSON-cinelab data and also sort the annotations by start time
     @param callback function to call when the data is ready.
  */
-IriSP.JSONSerializer.prototype.sync = function(callback) {
+IriSP.JSONSerializer.prototype.sync = function(callback, force_refresh) {
   /* we don't have to do much because jQuery handles json for us */
 
   var self = this;
@@ -5894,14 +5863,22 @@
 	  }     
       callback(data);      
   };
-  
-  this._DataLoader.get(this._url, fn);
+  this._DataLoader.get(this._url, fn, force_refresh);
 };
 
 /** @return the metadata about the media being read FIXME: always return the first media. */
 IriSP.JSONSerializer.prototype.currentMedia = function() {  
-  return this._data.medias[0]; /* FIXME: don't hardcode it */
-};
+  return (typeof this._data.medias == "object" && this._data.medias.length) ? this._data.medias[0] : IriSP.__jsonMetadata.medias[0];
+};
+
+IriSP.JSONSerializer.prototype.getDuration = function() {
+    var _m = this.currentMedia();
+    if (_m === null || typeof _m.meta == "undefined") {
+        return 0;
+    }
+    return +(IriSP.get_aliased(_m.meta, ["dc:duration", "duration"]) || 0);
+}
+
 
 /** searches for an annotation which matches title, description and keyword 
    "" matches any field. 
@@ -6283,8 +6260,4 @@
     val = this.getId("Publ");
     
   return val;
-};
-
-IriSP.JSONSerializer.prototype.getDuration = function() {
-    return +(IriSP.get_aliased(this.currentMedia().meta, ["dc:duration", "duration"]) || 0);
-}
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/allocine_dossier_independant/json_examples/annotations.json	Fri Apr 06 16:49:32 2012 +0200
@@ -0,0 +1,142 @@
+{
+    "format": "http:\/\/advene.org\/ns\/cinelab\/",
+    "imports": [
+        {
+            "id": "cinecast",
+            "url": "http:\/\/festival.cinecast.fr\/configuration.json"
+        }, {
+            "id": "medias",
+            "url": "http:\/\/festival.cinecast.fr\/medias.json"
+        }, {
+            "id": "extracts",
+            "url": "http:\/\/festival.cinecast.fr\/movie-extracts.json"
+        }
+    ],
+    "meta": {
+        "creator": "Vodkaster",
+        "created": "2012-04-04T16:21:02+02:00"
+    },
+    "annotations": [
+        {
+            "id": "ac-12",
+            "type": "cinecast:UserAnnotation",
+            "media": "cinecast-bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34956\/25592566-2-fre-FR\/34956-Des-chiffres-africains-calamiteux1_reference.jpg",
+                "creator": "login",
+                "created": "2012-03-09T16:21:28+01:00",
+                "extract": "789820"
+            },
+            "begin": 678000,
+            "end": 678000,
+            "content": {
+                "data": "eeeee"
+            }
+        }, {
+            "id": "ac-13",
+            "type": "cinecast:UserAnnotation",
+            "media": "cinecast-bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34954\/25592478-3-fre-FR\/34954-Fin-du-spectacle-et-reprise-de-l-audience1_reference.jpg",
+                "creator": "login",
+                "created": "2012-03-09T16:31:43+01:00",
+                "extract": "789816"
+            },
+            "begin": 519000,
+            "end": 519000,
+            "content": {
+                "data": "8minute38 #mot-clef"
+            }
+        }, {
+            "id": "ac-21",
+            "type": "cinecast:UserAnnotation",
+            "media": "cinecast-bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34961\/25593042-2-fre-FR\/34961-Standby1_reference.jpg",
+                "creator": "login",
+                "created": "2012-03-09T18:09:22+01:00",
+                "extract": "789849"
+            },
+            "begin": 177000,
+            "end": 177000,
+            "content": {
+                "data": "addadad #faux-raccord #mot-clef"
+            }
+        }, {
+            "id": "ac-22",
+            "type": "cinecast:UserAnnotation",
+            "media": "cinecast-bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34961\/25593042-2-fre-FR\/34961-Standby1_reference.jpg",
+                "creator": "login",
+                "created": "2012-03-12T10:31:04+01:00",
+                "extract": "789849"
+            },
+            "begin": 177000,
+            "end": 177000,
+            "content": {
+                "data": "ddddddddddddd"
+            }
+        }, {
+            "id": "ac-6",
+            "type": "cinecast:UserAnnotation",
+            "media": "cinecast-bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34952\/25592345-4-fre-FR\/34952-Generique-de-debut-et-preparation-a-l-audience1_reference.jpg",
+                "creator": "login",
+                "created": "2012-03-09T15:19:25+01:00",
+                "extract": "789808"
+            },
+            "begin": 7000,
+            "end": 7000,
+            "content": {
+                "data": "aaaa #mot-clef"
+            }
+        }, {
+            "id": "ac-7",
+            "type": "cinecast:UserAnnotation",
+            "media": "cinecast-bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34952\/25592345-4-fre-FR\/34952-Generique-de-debut-et-preparation-a-l-audience1_reference.jpg",
+                "creator": "login",
+                "created": "2012-03-09T15:35:35+01:00",
+                "extract": "789808"
+            },
+            "begin": 120000,
+            "end": 120000,
+            "content": {
+                "data": "test"
+            }
+        }, {
+            "id": "ac-8",
+            "type": "cinecast:UserAnnotation",
+            "media": "cinecast-bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34952\/25592345-4-fre-FR\/34952-Generique-de-debut-et-preparation-a-l-audience1_reference.jpg",
+                "creator": "login",
+                "created": "2012-03-09T15:42:35+01:00",
+                "extract": "789808"
+            },
+            "begin": 64000,
+            "end": 64000,
+            "content": {
+                "data": "test 1"
+            }
+        }, {
+            "id": "vk-11",
+            "type": "cinecast:UserAnnotation",
+            "media": "cinecast-bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/entre-les-murs\/13226\/19768606-6-fre-FR\/13226-Rentree-des-classes1_reference.jpg",
+                "creator": "hugo",
+                "created": "2012-04-01T00:00:00+02:00",
+                "extract": "246390"
+            },
+            "begin": 335189,
+            "end": 335189,
+            "content": {
+                "data": " #europe"
+            }
+        }
+    ]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/allocine_dossier_independant/json_examples/extracts.json	Fri Apr 06 16:49:32 2012 +0200
@@ -0,0 +1,705 @@
+{
+    "format": "http:\/\/advene.org\/ns\/cinelab\/",
+    "imports": [
+        {
+            "id": "cinecast",
+            "url": "http:\/\/festival.cinecast.fr\/configuration.json"
+        }, {
+            "id": "medias",
+            "url": "http:\/\/festival.cinecast.fr\/medias.json"
+        }
+    ],
+    "meta": {
+        "creator": "Vodkaster",
+        "created": "2012-04-04T16:21:41+02:00"
+    },
+    "annotations": [
+        {
+            "id": "789808",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34952\/25592345-4-fre-FR\/34952-Generique-de-debut-et-preparation-a-l-audience1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 0,
+            "end": 180000,
+            "content": {
+                "data": "G\u00e9n\u00e9rique de d\u00e9but et pr\u00e9paration \u00e0 l'audience"
+            }
+        }, {
+            "id": "789812",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34953\/25592424-3-fre-FR\/34953-Debut-de-l-audience1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 180000,
+            "end": 284000,
+            "content": {
+                "data": "D\u00e9but de l'audience"
+            }
+        }, {
+            "id": "789816",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34954\/25592478-3-fre-FR\/34954-Fin-du-spectacle-et-reprise-de-l-audience1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 404000,
+            "end": 579000,
+            "content": {
+                "data": "Fin du spectacle et reprise de l'audience"
+            }
+        }, {
+            "id": "789818",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34955\/25592528-3-fre-FR\/34955-Corruption-et-seduction1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 579000,
+            "end": 676000,
+            "content": {
+                "data": "Corruption et s\u00e9duction"
+            }
+        }, {
+            "id": "789820",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34956\/25592566-2-fre-FR\/34956-Des-chiffres-africains-calamiteux1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 676000,
+            "end": 797000,
+            "content": {
+                "data": "Des chiffres africains calamiteux"
+            }
+        }, {
+            "id": "789822",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34957\/25592606-3-fre-FR\/34957-Un-ideal-de-societe-inadaptee1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 797000,
+            "end": 977000,
+            "content": {
+                "data": "Un id\u00e9al de soci\u00e9t\u00e9 inadapt\u00e9e"
+            }
+        }, {
+            "id": "789824",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34958\/25592668-2-fre-FR\/34958-Supercherie-du-G81_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 977000,
+            "end": 1143000,
+            "content": {
+                "data": "\"Supercherie\" du G8 ?"
+            }
+        }, {
+            "id": "789825",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34959\/25592703-2-fre-FR\/34959-C-est-un-debat-qui-depasse-l-Afrique1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 1143000,
+            "end": 1276000,
+            "content": {
+                "data": "C'est un d\u00e9bat qui d\u00e9passe l'Afrique"
+            }
+        }, {
+            "id": "789839",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34960\/25592937-2-fre-FR\/34960-Ce-monde-est-ouvert-aux-blancs-mais-pas-aux-noirs1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 1276000,
+            "end": 1456000,
+            "content": {
+                "data": "Ce monde est ouvert aux blancs mais pas aux noirs"
+            }
+        }, {
+            "id": "789849",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34961\/25593042-2-fre-FR\/34961-Standby1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 1456000,
+            "end": 1590000,
+            "content": {
+                "data": "Standby"
+            }
+        }, {
+            "id": "789854",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34963\/25593121-2-fre-FR\/34963-Expose-du-periple1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 1590000,
+            "end": 1761000,
+            "content": {
+                "data": "Expos\u00e9 du p\u00e9riple"
+            }
+        }, {
+            "id": "789874",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34967\/25593375-2-fre-FR\/34967-Expose-du-periple-21_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 1761000,
+            "end": 1901000,
+            "content": {
+                "data": "Expos\u00e9 du p\u00e9riple 2"
+            }
+        }, {
+            "id": "789878",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34968\/25593421-2-fre-FR\/34968-L-audience-est-suspendue1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 1901000,
+            "end": 2081000,
+            "content": {
+                "data": "L'audience est suspendue"
+            }
+        }, {
+            "id": "789880",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34969\/25593461-2-fre-FR\/34969-Activites-et-problemes-du-soir1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 2081000,
+            "end": 2134000,
+            "content": {
+                "data": "Activit\u00e9s et probl\u00e8mes du soir"
+            }
+        }, {
+            "id": "789884",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34970\/25593533-4-fre-FR\/34970-Death-in-Tumbuktu-11_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 2134000,
+            "end": 2301000,
+            "content": {
+                "data": "Death in Tumbuktu 1"
+            }
+        }, {
+            "id": "789888",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34971\/25593579-2-fre-FR\/34971-Death-in-Tumbuktu-21_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 2301000,
+            "end": 2457000,
+            "content": {
+                "data": "Death in Tumbuktu 2"
+            }
+        }, {
+            "id": "789891",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34972\/25593626-3-fre-FR\/34972-Une-vie-et-un-couple-precaires1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 2457000,
+            "end": 2624000,
+            "content": {
+                "data": "Une vie et un couple pr\u00e9caires"
+            }
+        }, {
+            "id": "789896",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34973\/25593677-3-fre-FR\/34973-Un-mariage-interrompt-l-audience1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 2624000,
+            "end": 2763000,
+            "content": {
+                "data": "Un mariage interrompt l'audience"
+            }
+        }, {
+            "id": "789901",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34974\/25593734-2-fre-FR\/34974-L-Afrique-n-a-t-elle-plus-aucun-moyen-financier1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 2763000,
+            "end": 2903000,
+            "content": {
+                "data": "L'Afrique n'a-t-elle plus aucun moyen financier ?"
+            }
+        }, {
+            "id": "789904",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34975\/25593779-2-fre-FR\/34975-BM-ET-FMI-les-seuls-coupables1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 2903000,
+            "end": 3056000,
+            "content": {
+                "data": "BM ET FMI : les seuls coupables ?"
+            }
+        }, {
+            "id": "789906",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34976\/25593821-2-fre-FR\/34976-Reflexion-sur-le-role-des-banques1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 3056000,
+            "end": 3110000,
+            "content": {
+                "data": "R\u00e9flexion sur le r\u00f4le des banques"
+            }
+        }, {
+            "id": "789911",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34978\/25593906-2-fre-FR\/34978-Absence-d-ambassade-d-Israel-preuve-de-l-anti-developpement1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 3110000,
+            "end": 3202000,
+            "content": {
+                "data": "Absence d'ambassade d'Isra\u00ebl = preuve de l'anti-d\u00e9veloppement ?"
+            }
+        }, {
+            "id": "789914",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34979\/25593951-2-fre-FR\/34979-Colonialisme-latent1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 3202000,
+            "end": 3359000,
+            "content": {
+                "data": "Colonialisme latent"
+            }
+        }, {
+            "id": "789917",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34981\/25594026-2-fre-FR\/34981-Colonialisme-latent-21_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 3359000,
+            "end": 3411000,
+            "content": {
+                "data": "Colonialisme latent 2"
+            }
+        }, {
+            "id": "789919",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34982\/25594093-2-fre-FR\/34982-Colonialisme-latent-31_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 3522000,
+            "end": 3573000,
+            "content": {
+                "data": "Colonialisme latent 3"
+            }
+        }, {
+            "id": "789921",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34983\/25594133-2-fre-FR\/34983-Sermon-du-pasteur1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 3573000,
+            "end": 3722000,
+            "content": {
+                "data": "Sermon du pasteur"
+            }
+        }, {
+            "id": "789925",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34985\/25594213-2-fre-FR\/34985-Standby-21_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 3722000,
+            "end": 3807000,
+            "content": {
+                "data": "Standby 2"
+            }
+        }, {
+            "id": "789927",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34986\/25594280-2-fre-FR\/34986-Samba-Diakite1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 3807000,
+            "end": 3981000,
+            "content": {
+                "data": "Samba Diakit\u00e9"
+            }
+        }, {
+            "id": "789928",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34987\/25594315-2-fre-FR\/34987-Audience-et-contre-audience1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 3981000,
+            "end": 4033000,
+            "content": {
+                "data": "Audience et contre-audience"
+            }
+        }, {
+            "id": "789929",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34988\/25594350-3-fre-FR\/34988-Theorie-du-complot1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 4033000,
+            "end": 4197000,
+            "content": {
+                "data": "Th\u00e9orie du complot"
+            }
+        }, {
+            "id": "789931",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34989\/25594417-3-fre-FR\/34989-Reponse-a-la-theorie-du-complot1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 4197000,
+            "end": 4358000,
+            "content": {
+                "data": "R\u00e9ponse \u00e0 la th\u00e9orie du complot"
+            }
+        }, {
+            "id": "789933",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34990\/25594484-2-fre-FR\/34990-Recit-d-un-reve1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 4358000,
+            "end": 4443000,
+            "content": {
+                "data": "R\u00e9cit d'un r\u00eave"
+            }
+        }, {
+            "id": "789934",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34991\/25594519-2-fre-FR\/34991-Aucune-preuve-qui-soutienne-la-theorie-du-complot1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 4443000,
+            "end": 4545000,
+            "content": {
+                "data": "Aucune preuve qui soutienne la th\u00e9orie du complot"
+            }
+        }, {
+            "id": "789940",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34992\/25594575-2-fre-FR\/34992-Triste-soiree1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 4545000,
+            "end": 4620000,
+            "content": {
+                "data": "Triste soir\u00e9e"
+            }
+        }, {
+            "id": "789941",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34993\/25594610-2-fre-FR\/34993-Le-tissu-social-est-il-detruit1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 4620000,
+            "end": 4729000,
+            "content": {
+                "data": "Le tissu social est-il d\u00e9truit ?"
+            }
+        }, {
+            "id": "789945",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34994\/25594660-2-fre-FR\/34994-Plaidoirie-de-Maitre-Rappaport1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 4729000,
+            "end": 4908000,
+            "content": {
+                "data": "Plaidoirie de Ma\u00eetre Rappaport"
+            }
+        }, {
+            "id": "790160",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35018\/25597011-3-fre-FR\/35018-Plaidoirie-de-Maitre-Rappaport-21_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 4908000,
+            "end": 5081000,
+            "content": {
+                "data": "Plaidoirie de Ma\u00eetre Rappaport 2"
+            }
+        }, {
+            "id": "790173",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35020\/25597155-2-fre-FR\/35020-Chanter-pour-se-faire-entendre1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 5082000,
+            "end": 5262000,
+            "content": {
+                "data": "Chanter pour se faire entendre"
+            }
+        }, {
+            "id": "790194",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35021\/25597543-3-fre-FR\/35021-Plaidoirie-de-Maitre-William-Bourdon1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 5262000,
+            "end": 5434000,
+            "content": {
+                "data": "Plaidoirie de Ma\u00eetre William Bourdon"
+            }
+        }, {
+            "id": "790201",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35022\/25597618-3-fre-FR\/35022-Plaidoirie-de-Maitre-William-Bourdon-21_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 5434000,
+            "end": 5588000,
+            "content": {
+                "data": "Plaidoirie de Ma\u00eetre William Bourdon 2"
+            }
+        }, {
+            "id": "790207",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35023\/25597704-3-fre-FR\/35023-Plaidoirie-de-Wiliam-Bourdon-41_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 5768000,
+            "end": 5824000,
+            "content": {
+                "data": "Plaidoirie de Wiliam Bourdon 4"
+            }
+        }, {
+            "id": "790210",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35024\/25597774-3-fre-FR\/35024-Plaidoirie-de-Aissata-Tall-Sall1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 5824000,
+            "end": 5985000,
+            "content": {
+                "data": "Plaidoirie de A\u00efssata Tall Sall"
+            }
+        }, {
+            "id": "790212",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35025\/25597812-3-fre-FR\/35025-Plaidoirie-de-Aissata-Tall-Sall-21_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 5985000,
+            "end": 6081000,
+            "content": {
+                "data": "Plaidoirie de A\u00efssata Tall Sall 2"
+            }
+        }, {
+            "id": "790215",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35026\/25597857-3-fre-FR\/35026-Interlude-musical1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 6081000,
+            "end": 6245000,
+            "content": {
+                "data": "Interlude musical"
+            }
+        }, {
+            "id": "790217",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35027\/25597895-2-fre-FR\/35027-SPOILER-Suicide1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 6245000,
+            "end": 6311000,
+            "content": {
+                "data": "SPOILER - Suicide"
+            }
+        }, {
+            "id": "790218",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35028\/25597930-2-fre-FR\/35028-Funerailles1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 6311000,
+            "end": 6430000,
+            "content": {
+                "data": "Fun\u00e9railles"
+            }
+        }, {
+            "id": "790219",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35029\/25597965-2-fre-FR\/35029-Documentaire-sur-les-funerailles1_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 6430000,
+            "end": 6539000,
+            "content": {
+                "data": "Documentaire sur les fun\u00e9railles"
+            }
+        }, {
+            "id": "790220",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35030\/25598000-2-fre-FR\/35030-Generique-de-fin-11_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 6539000,
+            "end": 6659000,
+            "content": {
+                "data": "G\u00e9n\u00e9rique de fin 1"
+            }
+        }, {
+            "id": "790221",
+            "type": "cinecast:MovieExtract",
+            "media": "medias:bamako",
+            "meta": {
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/35031\/25598035-2-fre-FR\/35031-Generique-de-fin-21_reference.jpg",
+                "creator": "Vodkaster",
+                "created": "1970-01-01T01:00:00+01:00"
+            },
+            "begin": 6659000,
+            "end": 6725000,
+            "content": {
+                "data": "G\u00e9n\u00e9rique de fin 2"
+            }
+        }
+    ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/allocine_dossier_independant/json_examples/media.json	Fri Apr 06 16:49:32 2012 +0200
@@ -0,0 +1,26 @@
+{
+    "format": "http:\/\/advene.org\/ns\/cinelab\/",
+    "imports": [
+        {
+            "id": "cinecast",
+            "url": "http:\/\/festival.cinecast.fr\/configuration.json"
+        }
+    ],
+    "medias": [
+        {
+            "id": "bamako",
+            "url": "rtmpe:\/\/cp41629.edgefcs.net\/ondemand\/mp4:ondemand\/nmedia\/cinecast\/Bamako700.m4v",
+            "meta": {
+                "title": "Bamako",
+                "duration": 6725000,
+                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/42851-1-fre-FR\/Bamako3_reference.jpg",
+                "directors": "Abderrahmane Sissako",
+                "actors": "A\u00efssa Ma\u00efga, Ti\u00e9coura Traor\u00e9, Ma\u00efmouna H\u00e9l\u00e8ne Diarra",
+                "nationalities": "FR",
+                "production_year": "2006",
+                "version": "VOST",
+                "synopsis": "Mel\u00e9 est une chanteuse de bar et son mari, Chaka, au ch\u00f4mage s'enfonce dans le silence. Malgr\u00e9 une fille qui les unit, leur couple s'\u00e9miette petit \u00e0 petit. Ils vivent dans une maison qu'ils partagent avec plusieurs familles. Dans la cour, se tient un \u00e9tonnant \u00e9v\u00e9nement\u00a0: le proc\u00e8s de la soci\u00e9t\u00e9 civile africaine contre la Banque mondiale et le FMI\u00a0!"
+            }
+        }
+    ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/allocine_dossier_independant/json_examples/movie32.json	Fri Apr 06 16:49:32 2012 +0200
@@ -0,0 +1,1607 @@
+{
+    "medias": [
+        {
+            "id": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "url": "rtmpe://cp41629.edgefcs.net/ondemand/mp4:ondemand/nmedia/cinecast/C_Est_Dur_D_Etre_Aime_Par_Des_Cons700.m4v",
+            "meta": {
+                "mediaid": 32,
+                "actors": ["Philippe Val", "Elisabeth Badinter", "François Bayrou"],
+                "directors": ["Daniel Leconte"],
+                "nationalities": ["FR"],
+                "duration": 6140000,
+                "productionYear": "2008",
+                "synopsis": "Pour avoir reproduit les douze caricatures danoises ayant déclenché la colère des musulmans aux quatre coins du monde, Philippe Val, le patron de Charlie Hebdo, journal satirique français, est assigné en justice. Un procès hors norme que Daniel Leconte suit en temps réel.",
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/17519400-1-fre-FR/C-est-dur-d-etre-aime-par-des-cons_reference.jpg",
+                "title": "C\u0027est dur d\u0027être aimé par des cons",
+                "version": "VOST"
+            }
+        }
+    ],
+    "annotation_types": {
+        "id": "UserAnnotation",
+        "meta": {
+            "description": "Annotation made during the Cinecast Festival."
+        }
+    },
+    "annotations": [
+        {
+            "id": "cinecast:785050",
+            "begin": 0,
+            "end": 144000,
+            "content": {
+                "data": "Postulat"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34390/25528462-2-fre-FR/34390-Postulat1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785052",
+            "begin": 144000,
+            "end": 201000,
+            "content": {
+                "data": "Licenciement. Charlie Hebdo prend le relais"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34391/25528502-4-fre-FR/34391-Licenciement.-Charlie-Hebdo-prend-le-relais1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:250895",
+            "begin": 201000,
+            "end": 284000,
+            "content": {
+                "data": "Le fameux dessin"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/13800/19810874-5-fre-FR/13800-Le-fameux-dessin1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785081",
+            "begin": 284000,
+            "end": 450000,
+            "content": {
+                "data": "Denis Jeambar"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34394/25528804-2-fre-FR/34394-Denis-Jeambar1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785082",
+            "begin": 450000,
+            "end": 482000,
+            "content": {
+                "data": "Mosquée de Paris contre Charlie Hebdo"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34395/25528839-2-fre-FR/34395-Mosquee-de-Paris-contre-Charlie-Hebdo1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785086",
+            "begin": 482000,
+            "end": 561000,
+            "content": {
+                "data": "Générique"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34396/25528916-2-fre-FR/34396-Generique1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785092",
+            "begin": 561000,
+            "end": 685000,
+            "content": {
+                "data": "Proposition de débat"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34397/25529005-3-fre-FR/34397-Proposition-de-debat1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785095",
+            "begin": 685000,
+            "end": 761000,
+            "content": {
+                "data": "Annonce du procès"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34398/25529048-3-fre-FR/34398-Annonce-du-proces1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785099",
+            "begin": 761000,
+            "end": 936000,
+            "content": {
+                "data": "Les témoins de Charlie Hebdo"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34399/25529108-3-fre-FR/34399-Les-temoins-de-Charlie-Hebdo1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785101",
+            "begin": 936000,
+            "end": 973000,
+            "content": {
+                "data": "Le témoin mystère"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34400/25529146-3-fre-FR/34400-Le-temoin-mystere1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:246119",
+            "begin": 973000,
+            "end": 1075000,
+            "content": {
+                "data": "Ce procès est une insulte raciste"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/13181/19766309-7-fre-FR/13181-Ce-proces-est-une-insulte-raciste1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785106",
+            "begin": 1075000,
+            "end": 1132000,
+            "content": {
+                "data": "Rire de tout"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34403/25529269-2-fre-FR/34403-Rire-de-tout1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785109",
+            "begin": 1132000,
+            "end": 1275000,
+            "content": {
+                "data": "La Une"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34405/25529346-3-fre-FR/34405-La-Une1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:289950",
+            "begin": 1275000,
+            "end": 1341000,
+            "content": {
+                "data": "Exercer son droit"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/18268/20232789-7-fre-FR/18268-Exercer-son-droit1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785113",
+            "begin": 1341000,
+            "end": 1438000,
+            "content": {
+                "data": "Les enjeux"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34407/25529451-3-fre-FR/34407-Les-enjeux1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785118",
+            "begin": 1438000,
+            "end": 1562000,
+            "content": {
+                "data": "JT 13h"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34409/25529562-3-fre-FR/34409-JT-13h1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9040725+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:738531",
+            "begin": 1562000,
+            "end": 1640000,
+            "content": {
+                "data": "Interview à la radio avant le procès"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30193/24841522-3-fre-FR/30193-Interview-a-la-radio-avant-le-proces1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785125",
+            "begin": 1640000,
+            "end": 1787000,
+            "content": {
+                "data": "Le jour du procès"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34410/25529650-3-fre-FR/34410-Le-jour-du-proces1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785129",
+            "begin": 1787000,
+            "end": 1954000,
+            "content": {
+                "data": "Audition de Philippe Val"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34412/25529728-3-fre-FR/34412-Audition-de-Philippe-Val1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785134",
+            "begin": 1954000,
+            "end": 2128000,
+            "content": {
+                "data": "Audition de Philipe Val 2ème partie"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34414/25529836-4-fre-FR/34414-Audition-de-Philipe-Val-2eme-partie1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785138",
+            "begin": 2128000,
+            "end": 2246000,
+            "content": {
+                "data": "L\u0027arrivée du fax"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34416/25529912-3-fre-FR/34416-L-arrivee-du-fax1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:250520",
+            "begin": 2246000,
+            "end": 2344000,
+            "content": {
+                "data": "Lettre de soutien"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/13759/19808000-6-fre-FR/13759-Lettre-de-soutien1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785142",
+            "begin": 2344000,
+            "end": 2430000,
+            "content": {
+                "data": "La presse n\u0027en fera pas état"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34418/25530017-3-fre-FR/34418-La-presse-n-en-fera-pas-etat1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785144",
+            "begin": 2430000,
+            "end": 2564000,
+            "content": {
+                "data": "Dissolution du CFCM"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34419/25530055-3-fre-FR/34419-Dissolution-du-CFCM1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:738542",
+            "begin": 2564000,
+            "end": 2692000,
+            "content": {
+                "data": "Mahomet : fossé d\u0027interprétation"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30196/24841689-3-fre-FR/30196-Mahomet-fosse-d-interpretation1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785147",
+            "begin": 2692000,
+            "end": 2732000,
+            "content": {
+                "data": "1er retour"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34420/25530120-3-fre-FR/34420-1er-retour1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785149",
+            "begin": 2732000,
+            "end": 2892000,
+            "content": {
+                "data": "Une autre voix musulmane"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34421/25530158-3-fre-FR/34421-Une-autre-voix-musulmane1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:738538",
+            "begin": 2892000,
+            "end": 2973000,
+            "content": {
+                "data": "La salle des pas perdus"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30195/24841622-2-fre-FR/30195-La-salle-des-pas-perdus1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785153",
+            "begin": 2973000,
+            "end": 3144000,
+            "content": {
+                "data": "Audition du Père Lelong"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34423/25530246-3-fre-FR/34423-Audition-du-Pere-Lelong1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785156",
+            "begin": 3144000,
+            "end": 3177000,
+            "content": {
+                "data": "Un débat juridique ?"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34424/25530311-2-fre-FR/34424-Un-debat-juridique1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:289961",
+            "begin": 3177000,
+            "end": 3342000,
+            "content": {
+                "data": "L\u0027audition de François Hollande"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/18270/20232882-6-fre-FR/18270-L-audition-de-Francois-Hollande1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785158",
+            "begin": 3342000,
+            "end": 3396000,
+            "content": {
+                "data": "Vous gênez là"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34426/25530381-2-fre-FR/34426-Vous-genez-la1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785160",
+            "begin": 3396000,
+            "end": 3556000,
+            "content": {
+                "data": "Audition de Denis Jeambar"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34428/25530451-3-fre-FR/34428-Audition-de-Denis-Jeambar1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785163",
+            "begin": 3556000,
+            "end": 3617000,
+            "content": {
+                "data": "Ils m\u0027ont torturé parce que j\u0027étais musulman"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34429/25530496-2-fre-FR/34429-Ils-m-ont-torture-parce-que-j-etais-musulman1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:289942",
+            "begin": 3617000,
+            "end": 3772000,
+            "content": {
+                "data": "L\u0027agonie de la liberté"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/18267/20232735-8-fre-FR/18267-L-agonie-de-la-liberte1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785166",
+            "begin": 3772000,
+            "end": 3895000,
+            "content": {
+                "data": "Les nouveaux arrivants"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34432/25530601-4-fre-FR/34432-Les-nouveaux-arrivants1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:258487",
+            "begin": 3895000,
+            "end": 3956000,
+            "content": {
+                "data": "La liberté de cracher"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/14525/19878658-7-fre-FR/14525-La-liberte-de-cracher1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785171",
+            "begin": 3956000,
+            "end": 4100000,
+            "content": {
+                "data": "L\u0027arrivée de Claude Lanzmann"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34434/25530709-2-fre-FR/34434-L-arrivee-de-Claude-Lanzmann1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785183",
+            "begin": 4100000,
+            "end": 4269000,
+            "content": {
+                "data": "Audition de François Bayrou"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34436/25530817-3-fre-FR/34436-Audition-de-Francois-Bayrou1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785189",
+            "begin": 4269000,
+            "end": 4326000,
+            "content": {
+                "data": "Vous dites un mensonge"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34438/25530899-2-fre-FR/34438-Vous-dites-un-mensonge1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785191",
+            "begin": 4326000,
+            "end": 4426000,
+            "content": {
+                "data": "Audition de Mohamed Sifaoui 1"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34439/25530949-2-fre-FR/34439-Audition-de-Mohamed-Sifaoui-11_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785194",
+            "begin": 4426000,
+            "end": 4602000,
+            "content": {
+                "data": "Audition de Mohamed Sifaoui 2"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34440/25530994-2-fre-FR/34440-Audition-de-Mohamed-Sifaoui-21_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785198",
+            "begin": 4602000,
+            "end": 4779000,
+            "content": {
+                "data": "Audition de Mohamed Sifaoui 3"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34441/25531046-2-fre-FR/34441-Audition-de-Mohamed-Sifaoui-31_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:738533",
+            "begin": 4779000,
+            "end": 4943000,
+            "content": {
+                "data": "Les caricatures de Mahomet en question"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30194/24841560-2-fre-FR/30194-Les-caricatures-de-Mahomet-en-question1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785308",
+            "begin": 4943000,
+            "end": 5003000,
+            "content": {
+                "data": "La République se donne raison à elle-même"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34447/25532130-3-fre-FR/34447-La-Republique-se-donne-raison-a-elle-meme1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785310",
+            "begin": 5003000,
+            "end": 5076000,
+            "content": {
+                "data": "Il est mort pour la France mon grand-père"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34448/25532168-2-fre-FR/34448-Il-est-mort-pour-la-France-mon-grand-pere1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785315",
+            "begin": 5076000,
+            "end": 5217000,
+            "content": {
+                "data": "Plaidoirie des avocats des plaignants"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34450/25532297-2-fre-FR/34450-Plaidoirie-des-avocats-des-plaignants1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785320",
+            "begin": 5217000,
+            "end": 5279000,
+            "content": {
+                "data": "Caroline Fourest contre Francis Szpiner"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34451/25532383-2-fre-FR/34451-Caroline-Fourest-contre-Francis-Szpiner1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785324",
+            "begin": 5279000,
+            "end": 5336000,
+            "content": {
+                "data": "Plaidoirie de Richard Malka"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34452/25532445-3-fre-FR/34452-Plaidoirie-de-Richard-Malka1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785330",
+            "begin": 5336000,
+            "end": 5494000,
+            "content": {
+                "data": "Vous voulez une égalité de traitement ?"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34454/25532565-3-fre-FR/34454-Vous-voulez-une-egalite-de-traitement1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9050491+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:738550",
+            "begin": 5494000,
+            "end": 5564000,
+            "content": {
+                "data": "L\u0027Islam : un sort particulier"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30199/24841820-2-fre-FR/30199-L-Islam-un-sort-particulier1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9060257+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785336",
+            "begin": 5564000,
+            "end": 5633000,
+            "content": {
+                "data": "Un grand moment de théâtre"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34455/25532651-3-fre-FR/34455-Un-grand-moment-de-theatre1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9060257+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785339",
+            "begin": 5633000,
+            "end": 5750000,
+            "content": {
+                "data": "Plaidoirie de Georges Kiejman"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34456/25532692-3-fre-FR/34456-Plaidoirie-de-Georges-Kiejman1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9060257+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785343",
+            "begin": 5750000,
+            "end": 5877000,
+            "content": {
+                "data": "Alors parle et meurs"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34457/25532767-3-fre-FR/34457-Alors-parle-et-meurs1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9060257+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:738544",
+            "begin": 5877000,
+            "end": 6020000,
+            "content": {
+                "data": "Spoiler - Le jour du verdict"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30197/24841727-2-fre-FR/30197-Spoiler-Le-jour-du-verdict1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9060257+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "cinecast:785348",
+            "begin": 6020000,
+            "end": 6137000,
+            "content": {
+                "data": "Générique de fin"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "type": "cinecast:MovieExtract",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34458/25532820-2-fre-FR/34458-Generique-de-fin1_reference.jpg",
+                "created": "2012-04-05T12:11:33.9060257+02:00",
+                "creator": "Allociné"
+            }
+        }, {
+            "id": "ac-145",
+            "begin": 5813,
+            "end": 5813,
+            "content": {
+                "data": "Antiocho mittat est Apollonius non coepit contingere navis est amet consensit cellula rei exultant deo adoptavit cum."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34457/25532767-3-fre-FR/34457-Alors-parle-et-meurs1_reference.jpg",
+                "extract": "785343",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/145",
+                "created": "2012-04-02T12:07:44.0570000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-154",
+            "begin": 3833,
+            "end": 3833,
+            "content": {
+                "data": "Curro vicina profundum item filiam sunt forma non solutionem invenerunt."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34432/25530601-4-fre-FR/34432-Les-nouveaux-arrivants1_reference.jpg",
+                "extract": "785166",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/154",
+                "created": "2012-04-02T12:07:44.1300000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-160",
+            "begin": 1870,
+            "end": 1870,
+            "content": {
+                "data": "Tunc agitans diam nostra paupercula possunt in fuerat se sed eu fugiens laudo in modo cavendum es."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34412/25529728-3-fre-FR/34412-Audition-de-Philippe-Val1_reference.jpg",
+                "extract": "785129",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/160",
+                "created": "2012-04-02T12:07:44.1800000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-162",
+            "begin": 2812,
+            "end": 2812,
+            "content": {
+                "data": "Reflexionis Respondens sed quod eam in rei finibus veteres hoc."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34421/25530158-3-fre-FR/34421-Une-autre-voix-musulmane1_reference.jpg",
+                "extract": "785149",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/162",
+                "created": "2012-04-02T12:07:44.1970000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-184",
+            "begin": 3694,
+            "end": 3694,
+            "content": {
+                "data": "Item filiam sunt amore meam celebrabantur Apollonius eius non potentiae Apollonium sit Mariae Bone de tuae infami cum magna."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/18267/20232735-8-fre-FR/18267-L-agonie-de-la-liberte1_reference.jpg",
+                "extract": "289942",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/184",
+                "created": "2012-04-02T12:07:44.4000000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-215",
+            "begin": 3694,
+            "end": 3694,
+            "content": {
+                "data": "Ipsam ei Taliarchum in deinde cupis ei auri in lucem genero nomine Hesterna."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/18267/20232735-8-fre-FR/18267-L-agonie-de-la-liberte1_reference.jpg",
+                "extract": "289942",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/215",
+                "created": "2012-04-02T12:07:44.6600000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-220",
+            "begin": 1601,
+            "end": 1601,
+            "content": {
+                "data": "Scelerata nunc eius est amet coram regis iam insulam quod ait est amet constanter approximavit te finis puellam materia eam eos. Volentes mihi Tyrum ad nomine."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30193/24841522-3-fre-FR/30193-Interview-a-la-radio-avant-le-proces1_reference.jpg",
+                "extract": "738531",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/220",
+                "created": "2012-04-02T12:07:44.7000000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-240",
+            "begin": 1024,
+            "end": 1024,
+            "content": {
+                "data": "Ipsam ei Taliarchum in deinde cupis ei auri in lucem genero nomine Hesterna."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/13181/19766309-7-fre-FR/13181-Ce-proces-est-une-insulte-raciste1_reference.jpg",
+                "extract": "246119",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/240",
+                "created": "2012-04-02T12:08:51.6030000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-248",
+            "begin": 1870,
+            "end": 1870,
+            "content": {
+                "data": "Scelerata nunc eius est amet coram regis iam insulam quod ait est amet constanter approximavit te finis puellam materia eam eos. Volentes mihi Tyrum ad nomine."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34412/25529728-3-fre-FR/34412-Audition-de-Philippe-Val1_reference.jpg",
+                "extract": "785129",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/248",
+                "created": "2012-04-02T12:08:51.6700000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-249",
+            "begin": 3925,
+            "end": 3925,
+            "content": {
+                "data": "Vobis si quod tamen adnuente rediens eam in rei exultant deo adoptavit cum magna Dianam."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/14525/19878658-7-fre-FR/14525-La-liberte-de-cracher1_reference.jpg",
+                "extract": "258487",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/249",
+                "created": "2012-04-02T12:08:51.6800000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-263",
+            "begin": 5415,
+            "end": 5415,
+            "content": {
+                "data": "Filiae Hellenicus ut diem obiecti aliud ait est se est se sed."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34454/25532565-3-fre-FR/34454-Vous-voulez-une-egalite-de-traitement1_reference.jpg",
+                "extract": "785330",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/263",
+                "created": "2012-04-02T12:08:51.7970000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-281",
+            "begin": 2932,
+            "end": 2932,
+            "content": {
+                "data": "Dabo potest contremiscunt pater ostendit sibi afflictione magnam clamantem in deinde cepit roseo."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30195/24841622-2-fre-FR/30195-La-salle-des-pas-perdus1_reference.jpg",
+                "extract": "738538",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/281",
+                "created": "2012-04-02T12:08:51.9670000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-291",
+            "begin": 1500,
+            "end": 1500,
+            "content": {
+                "data": "Ipsum ait regem Ardalio nos in lucem."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34409/25529562-3-fre-FR/34409-JT-13h1_reference.jpg",
+                "extract": "785118",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/291",
+                "created": "2012-04-02T12:08:52.0500000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-293",
+            "begin": 2041,
+            "end": 2041,
+            "content": {
+                "data": "Curro vicina profundum item filiam sunt forma non solutionem invenerunt."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34414/25529836-4-fre-FR/34414-Audition-de-Philipe-Val-2eme-partie1_reference.jpg",
+                "extract": "785134",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/293",
+                "created": "2012-04-02T12:08:52.0670000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-294",
+            "begin": 466,
+            "end": 466,
+            "content": {
+                "data": "Iusto opes mihi esse more filiam, deponiturque itaque cum autem Apolloni ex hic."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34395/25528839-2-fre-FR/34395-Mosquee-de-Paris-contre-Charlie-Hebdo1_reference.jpg",
+                "extract": "785082",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/294",
+                "created": "2012-04-02T12:08:52.0770000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-308",
+            "begin": 3160,
+            "end": 3160,
+            "content": {
+                "data": "Filiae Hellenicus ut diem obiecti aliud ait est se est se sed."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": ["#deferunt", "#mihi"],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34424/25530311-2-fre-FR/34424-Un-debat-juridique1_reference.jpg",
+                "extract": "785156",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/308",
+                "created": "2012-04-02T12:08:52.1930000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-348",
+            "begin": 1103,
+            "end": 1103,
+            "content": {
+                "data": "Dabo potest contremiscunt pater ostendit sibi afflictione magnam clamantem in deinde cepit roseo."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34403/25529269-2-fre-FR/34403-Rire-de-tout1_reference.jpg",
+                "extract": "785106",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/348",
+                "created": "2012-04-02T12:09:35.1400000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-369",
+            "begin": 466,
+            "end": 466,
+            "content": {
+                "data": "Quem est amet constanter determinatio vestes."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34395/25528839-2-fre-FR/34395-Mosquee-de-Paris-contre-Charlie-Hebdo1_reference.jpg",
+                "extract": "785082",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/369",
+                "created": "2012-04-02T12:09:36.7330000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-375",
+            "begin": 5248,
+            "end": 5248,
+            "content": {
+                "data": "Reflexionis Respondens sed quod eam in rei finibus veteres hoc."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34451/25532383-2-fre-FR/34451-Caroline-Fourest-contre-Francis-Szpiner1_reference.jpg",
+                "extract": "785320",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/375",
+                "created": "2012-04-02T12:09:36.9500000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-388",
+            "begin": 2812,
+            "end": 2812,
+            "content": {
+                "data": "Item filiam sunt amore meam celebrabantur Apollonius eius non potentiae Apollonium sit Mariae Bone de tuae infami cum magna."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34421/25530158-3-fre-FR/34421-Une-autre-voix-musulmane1_reference.jpg",
+                "extract": "785149",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/388",
+                "created": "2012-04-02T12:09:37.5600000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-390",
+            "begin": 1713,
+            "end": 1713,
+            "content": {
+                "data": "Scelerata nunc eius est amet coram regis iam insulam quod ait est amet constanter approximavit te finis puellam materia eam eos. Volentes mihi Tyrum ad nomine."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34410/25529650-3-fre-FR/34410-Le-jour-du-proces1_reference.jpg",
+                "extract": "785125",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/390",
+                "created": "2012-04-02T12:09:37.6330000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-405",
+            "begin": 1308,
+            "end": 1308,
+            "content": {
+                "data": "Cyrenaeorum tertia navigavit volente in fuerat accidens suos ut libertatem adhuc. Priapum avarus videret quo sanctis venias in fuerat, solum ad te in deinde cupis auras sed."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": ["#puer", "#illum"],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/18268/20232789-7-fre-FR/18268-Exercer-son-droit1_reference.jpg",
+                "extract": "289950",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/405",
+                "created": "2012-04-02T12:09:38.2730000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-416",
+            "begin": 4861,
+            "end": 4861,
+            "content": {
+                "data": "Filiae Hellenicus ut diem obiecti aliud ait est se est se sed."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30194/24841560-2-fre-FR/30194-Les-caricatures-de-Mahomet-en-question1_reference.jpg",
+                "extract": "738533",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/416",
+                "created": "2012-04-02T12:09:38.7330000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-434",
+            "begin": 5813,
+            "end": 5813,
+            "content": {
+                "data": "Vobis si quod tamen adnuente rediens eam in rei exultant deo adoptavit cum magna Dianam."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34457/25532767-3-fre-FR/34457-Alors-parle-et-meurs1_reference.jpg",
+                "extract": "785343",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/434",
+                "created": "2012-04-02T12:09:58.8570000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-435",
+            "begin": 2187,
+            "end": 2187,
+            "content": {
+                "data": "Audito claudi in fuerat accidens suos alloquitur hanc cuius iuvenis eum est in fuerat construeret in modo."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34416/25529912-3-fre-FR/34416-L-arrivee-du-fax1_reference.jpg",
+                "extract": "785138",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/435",
+                "created": "2012-04-02T12:09:58.8670000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-441",
+            "begin": 3586,
+            "end": 3586,
+            "content": {
+                "data": "Ipsam ei Taliarchum in deinde cupis ei auri in lucem genero nomine Hesterna."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34429/25530496-2-fre-FR/34429-Ils-m-ont-torture-parce-que-j-etais-musulman1_reference.jpg",
+                "extract": "785163",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/441",
+                "created": "2012-04-02T12:09:58.9230000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-442",
+            "begin": 4184,
+            "end": 4184,
+            "content": {
+                "data": "Mansione sed esse haec in modo."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34436/25530817-3-fre-FR/34436-Audition-de-Francois-Bayrou1_reference.jpg",
+                "extract": "785183",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/442",
+                "created": "2012-04-02T12:09:58.9400000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-446",
+            "begin": 5415,
+            "end": 5415,
+            "content": {
+                "data": "Quem est amet constanter determinatio vestes."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34454/25532565-3-fre-FR/34454-Vous-voulez-une-egalite-de-traitement1_reference.jpg",
+                "extract": "785330",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/446",
+                "created": "2012-04-02T12:09:58.9730000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-450",
+            "begin": 4376,
+            "end": 4376,
+            "content": {
+                "data": "Sui coniungens in rei exultant deo adiuves finem imponunt hoc ait regem Ardalio nos filiae."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34439/25530949-2-fre-FR/34439-Audition-de-Mohamed-Sifaoui-11_reference.jpg",
+                "extract": "785191",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/450",
+                "created": "2012-04-02T12:09:59.0170000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-473",
+            "begin": 2812,
+            "end": 2812,
+            "content": {
+                "data": "Iusto opes mihi esse more filiam, deponiturque itaque cum autem Apolloni ex hic."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34421/25530158-3-fre-FR/34421-Une-autre-voix-musulmane1_reference.jpg",
+                "extract": "785149",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/473",
+                "created": "2012-04-02T12:09:59.2830000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-477",
+            "begin": 5529,
+            "end": 5529,
+            "content": {
+                "data": "Iuvenem ut sua in fuerat construeret cena reges undis effugere quod ait regem adventu nihil."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30199/24841820-2-fre-FR/30199-L-Islam-un-sort-particulier1_reference.jpg",
+                "extract": "738550",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/477",
+                "created": "2012-04-02T12:09:59.3330000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-499",
+            "begin": 4184,
+            "end": 4184,
+            "content": {
+                "data": "Innumera patris super color est in rei civibus corporis optime Verena amica ripam fluxa in lucem exempli paupers."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": ["#rex!", "#ea", "#dolores"],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34436/25530817-3-fre-FR/34436-Audition-de-Francois-Bayrou1_reference.jpg",
+                "extract": "785183",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/499",
+                "created": "2012-04-02T12:09:59.5670000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-500",
+            "begin": 2712,
+            "end": 2712,
+            "content": {
+                "data": "Filiae Hellenicus ut diem obiecti aliud ait est se est se sed."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34420/25530120-3-fre-FR/34420-1er-retour1_reference.jpg",
+                "extract": "785147",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/500",
+                "created": "2012-04-02T12:09:59.5830000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-507",
+            "begin": 4690,
+            "end": 4690,
+            "content": {
+                "data": "Curro vicina profundum item filiam sunt forma non solutionem invenerunt."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34441/25531046-2-fre-FR/34441-Audition-de-Mohamed-Sifaoui-31_reference.jpg",
+                "extract": "785198",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/507",
+                "created": "2012-04-02T12:10:00.4330000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-510",
+            "begin": 1024,
+            "end": 1024,
+            "content": {
+                "data": "Famuli curvus in lucem concitaverunt in."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/13181/19766309-7-fre-FR/13181-Ce-proces-est-une-insulte-raciste1_reference.jpg",
+                "extract": "246119",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/510",
+                "created": "2012-04-02T12:10:01.8330000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-511",
+            "begin": 4028,
+            "end": 4028,
+            "content": {
+                "data": "Cyrenaeorum tertia navigavit volente in fuerat accidens suos ut libertatem adhuc. Priapum avarus videret quo sanctis venias in fuerat, solum ad te in deinde cupis auras sed."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": ["#servitute"],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34434/25530709-2-fre-FR/34434-L-arrivee-de-Claude-Lanzmann1_reference.jpg",
+                "extract": "785171",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/511",
+                "created": "2012-04-02T12:10:01.8500000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-520",
+            "begin": 1601,
+            "end": 1601,
+            "content": {
+                "data": "Antiocho mittat est Apollonius non coepit contingere navis est amet consensit cellula rei exultant deo adoptavit cum."
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/30193/24841522-3-fre-FR/30193-Interview-a-la-radio-avant-le-proces1_reference.jpg",
+                "extract": "738531",
+                "status": "active",
+                "creator_name": "Cyril Rabaux",
+                "url": "/Annotation/520",
+                "created": "2012-04-02T12:10:01.9830000",
+                "creator": "ac-108"
+            }
+        }, {
+            "id": "ac-542",
+            "begin": 2732978,
+            "end": 2732978,
+            "content": {
+                "data": "123354 rdan"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34421/25530158-3-fre-FR/34421-Une-autre-voix-musulmane1_reference.jpg",
+                "extract": "785149",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/542",
+                "created": "2012-04-03T12:45:23.9770000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-543",
+            "begin": 2732978,
+            "end": 2732978,
+            "content": {
+                "data": "123354 rdan"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34421/25530158-3-fre-FR/34421-Une-autre-voix-musulmane1_reference.jpg",
+                "extract": "785149",
+                "status": "active",
+                "creator_name": "login",
+                "url": "/Annotation/543",
+                "created": "2012-04-03T12:45:28.6170000",
+                "creator": "ac-285"
+            }
+        }, {
+            "id": "ac-549",
+            "begin": 942869,
+            "end": 942869,
+            "content": {
+                "data": "c\u0027est vraiment très intéressant hein #Racisme #Manifestation #Justice sociale"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": ["#racisme", "#manifestation", "#justice", "manifestation", "racisme", "justice sociale"],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34400/25529146-3-fre-FR/34400-Le-temoin-mystere1_reference.jpg",
+                "extract": "785101",
+                "status": "active",
+                "creator_name": "Partner CineCast",
+                "url": "/Annotation/549",
+                "created": "2012-04-04T09:43:51.6370000",
+                "creator": "ac-519"
+            }
+        }, {
+            "id": "ac-550",
+            "begin": 1353783,
+            "end": 1353783,
+            "content": {
+                "data": "test"
+            },
+            "media": "medias:c-est-dur-d-etre-aime-par-des-cons",
+            "tags": [],
+            "type": "cinecast:UserAnnotation",
+            "meta": {
+                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/c-est-dur-d-etre-aime-par-des-cons/34407/25529451-3-fre-FR/34407-Les-enjeux1_reference.jpg",
+                "extract": "785113",
+                "status": "active",
+                "creator_name": "Partner CineCast",
+                "url": "/Annotation/550",
+                "created": "2012-04-04T10:22:32.9370000",
+                "creator": "ac-519"
+            }
+        }
+    ],
+    "meta": {
+        "id": "medias:c-est-dur-d-etre-aime-par-des-cons",
+        "created": "2012-04-05T12:11:33.9079789+02:00",
+        "creator": "AlloCiné"
+    },
+    "format": "http://advene.org/ns/cinelab/",
+    "imports": [
+        {
+            "id": "cinecast",
+            "url": "http://cinecast.fr/festival/configuration.json"
+        }, {
+            "id": "medias",
+            "url": "http://cinecast.fr/festival/medias.json"
+        }
+    ]
+}
\ No newline at end of file
--- a/test/integration/allocine_dossier_independant/json_examples/player.json	Tue Apr 03 20:30:12 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-{
-    "medias": [
-        {
-            "id": "cinecast:Bamako",
-            "url": "rtmpe://cp41629.edgefcs.net/ondemand/mp4:ondemand/nmedia/cinecast/Bamako1500.m4v",
-            "meta": {
-                "mediaid": 1,
-                "actors": ["Aissa Maiga", "Tiecoura Traore", "Maimouna Helene Diarra"],
-                "directors": ["Abderrahmane Sissako"],
-                "nationalities": ["FR"],
-                "duration": 7080000,
-                "productionYear": "2006",
-                "synopsis": null,
-                "thumbnail": "http://www.vodkaster.com/var/vodkaster/storage/images/films/bamako/42851-1-fre-FR/Bamako3_reference.jpg",
-                "title": "Bamako",
-                "version": "VOST"
-            }
-        }
-    ],
-    "annotation_types": [
-        {
-            "id": "cinecast:UserAnnotation",
-            "meta": {
-                "description": "Annotation made during the Cinecast Festival."
-            }
-        },
-        {
-            "id": "cinecast:MovieExtract",
-            "meta": {
-                "description": "Extract from a Movie."
-            }
-        }
-    ],
-    "annotations": [ {
-            "id": "ac:3638",
-            "begin": 187000,
-            "end": 187000,
-            "timecode": 0,
-            "content": {
-                "data": "test #vodkaster #allocine #universcine"
-            },
-            "media": "cinecast:Bamako",
-            "tags": ["#vodkaster", "#allocine", "#universcine"],
-            "type": "cinecast:UserAnnotation",
-            "meta": {
-                "mediaid": 1,
-                "thumbnail": "/users/02/7/7/4/Z20110103142031450307477/img/0tyw3myh.cce.jpg",
-                "extract": "789849",
-                "status": "active",
-                "timestamp": 12995,
-                "created": "2012-03-16T11:06:47.3170000",
-                "creator": "ac:495",
-                "creator_name": "Pierre",
-                "url": "http:\/\/www.allocine.com/mon_annotation"
-            }
-        }, {
-            "id": "cinecast:789914",
-            "type": "cinecast:MovieExtract",
-            "media": "cinecast:Bamako",
-            "meta": {
-                "thumbnail": "http:\/\/www.vodkaster.com\/var\/vodkaster\/storage\/images\/films\/bamako\/34979\/25593951-2-fre-FR\/34979-Colonialisme-latent1_reference.jpg",
-                "creator": "Vodkaster",
-                "created": "1970-01-01T01:00:00+01:00"
-            },
-            "begin": 3202000,
-            "end": 3359000,
-            "content": {
-                "data": "Colonialisme latent"
-            }
-        }
-    ],
-    "meta": {
-        "id": "cinecast:Bamako",
-        "created": "2012-03-19T17:15:22.4921496Z",
-        "creator": "AlloCine"
-    },
-    "format": "http://advene.org/ns/cinelab/",
-    "imports": [
-        {
-            "id": "cinecast",
-            "url": "http://cinecast.fr/festival/configuration.json"
-        }
-    ]
-}
\ No newline at end of file
--- a/test/integration/allocine_dossier_independant/json_examples/posted_annotations.json	Tue Apr 03 20:30:12 2012 +0200
+++ b/test/integration/allocine_dossier_independant/json_examples/posted_annotations.json	Fri Apr 06 16:49:32 2012 +0200
@@ -1,4 +1,11 @@
 {
+    "format": "http://advene.org/ns/cinelab/",
+    "imports": [
+        {
+            "id": "cinecast",
+            "url": "http://festival.cinecast.fr/configuration.json"
+        }
+    ],
     "annotations": [
         {
             "media": "cinecast:Bamako",
@@ -9,7 +16,7 @@
             "content": {
                 "data": "Hello, #world !"
             },
-            "tags": ["#world"]
+            "tags": ["cinecast:world"]
         }
     ],
     "meta": {
--- a/test/integration/allocine_dossier_independant/polemic-allocine.htm	Tue Apr 03 20:30:12 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html dir="ltr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml" lang="fr">
-    <head>
-        <title>Metadataplayer - Polemic tweet integration test</title>
-    </head>
-    <body style="background: #222222; color: #ff00ff;">
-        <div style="width:650px;font-family: 'Trebuchet MS', 'Helvetica', 'Arial',  'Verdana', 'sans-serif';">
-            <h1>MetaDataPlayer</h1>
-            Integration test - ALLOCINE PLAYER
-        </div>
-        <!-- START Integration  ###################################### -->
-        <!-- SIMPLE PLAYER EXPERIMENTATION -->
-        <script type="text/javascript" src="/metadataplayer/build/LdtPlayer-release.js" type="text/javascript"></script>
-        <div id="video"></div>
-        <div id="LdtPlayer" style="float: left;"></div>
-        <div id="Sparkline"></div>
-        <script  type="text/javascript">
-            var json_url = 'allocine_test/bamako.json';
-
-            IriSP.user = {
-                name : 'awesome_user_name',
-                avatar : 'allocine_test/avatar.png'
-            };
-            IriSP.libdir = "js/libs/";
-            IriSP.defaults.user = function() {
-                return IriSP.user;
-            };
-            var config = {
-                gui : {
-                    width : 610,
-                    height : 900,
-                    container : 'LdtPlayer',
-                    css : 'css/LdtPlayer.css',
-                    default_options : {
-                        metadata : {
-                            format : 'cinelab',
-                            src : json_url,
-                            type : 'json'
-                        },
-                        cinecast_version : true,
-                        width : 610
-                    },
-                    widgets : [{
-                        type : "AnnotationsListWidget",
-                        container : "MyListContainer",
-                        ajax_mode : false
-                    }, {
-                        type : "SparklineWidget",
-                        height : 50,
-                        lineColor: "#ffffff",
-                        fillColor: "#999999"
-                    }, {
-                        type : "SegmentsWidget",
-                        requires : [{
-                            type : "TooltipWidget",
-                            width : 180,
-                            height : 160,
-                        }]
-                    }, {
-                        type : "createAnnotationWidget",
-                        polemic_mode : false,
-                        remote_keywords : 'http://festival.cinecast.fr/configuration.jsonp?jsonp=?',
-                        random_keywords : 3,
-                        disable_share: true,
-                        api_endpoint_template : "coucou/{{id}}.json",
-                        api_method : 'POST'
-                    }, {
-                        type: "TraceWidget",
-                     //   js_console : true,
-                        url: "http://traces.advene.org:5000/",
-                        requestmode: 'GET',
-                        syncmode: "sync"
-                    } ]
-                },
-                player : {
-                    type : 'allocine', // player type
-                    height : 300,
-                    width : 610,
-                    acPlayerUrl : "allocine_test/AcPlayer_v3.0_new.swf",
-                    autoPlay : "true",
-                    urlAcData : "allocine_test/data_cinecast_new.xml"
-                },
-                modules : [{
-                    type : "MediaFragment",
-                    metadata : {
-                        format : 'cinelab',
-                        src : json_url,
-                        type : 'json'
-                    }
-                }]
-
-            };
-
-            IriSP.initPlayer(config, json_url);
-
-        </script>
-    <div id="MyListContainer" style="float: left; width: 400px;"></div>
-    </body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/allocine_dossier_independant/test-allocine.htm	Fri Apr 06 16:49:32 2012 +0200
@@ -0,0 +1,102 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html dir="ltr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml" lang="fr">
+    <head>
+        <title>Metadataplayer - Polemic tweet integration test</title>
+    </head>
+    <body style="background: #222222; color: #ff00ff;">
+        <div style="width:650px;">
+            <h1>MetaDataPlayer</h1>
+            Integration test - ALLOCINE PLAYER
+        </div>
+        <!-- START Integration  ###################################### -->
+        <!-- SIMPLE PLAYER EXPERIMENTATION -->
+        <script type="text/javascript" src="js/LdtPlayer-release.js" type="text/javascript"></script>
+        <div id="video"></div>
+        <div id="LdtPlayer" style="float: left;"></div>
+        <div id="Sparkline"></div>
+        <script  type="text/javascript">
+            var json_url = 'json_examples/movie32.json';
+            
+            IriSP.user = {
+                name : 'awesome_user_name',
+                avatar : 'allocine_test/avatar.png'
+            };
+            IriSP.libFiles.defaultDir = "/metadataplayer/src/js/libs/";
+
+            var config = {
+                gui : {
+                    width : 610,
+                    height : 900,
+                    container : 'LdtPlayer',
+                    css : 'css/LdtPlayer.css',
+                    default_options : {
+                        width: 610,
+                        cinecast_version: true,
+                        metadata : {
+                            format : 'cinelab',
+                            src : json_url,
+                            type : 'json'
+                        }
+                    },
+                    widgets : [{
+                        type : "AnnotationsListWidget",
+                        container : "MyListContainer", // div dans lequel sera affiché "Annotations Liées"
+                        ajax_mode : false, // nécessaire pour des raisons historiques
+                        refresh_interval : 15 * 60 * 1000 // 15 minutes
+                    }, {
+                        type : "SparklineWidget",
+                        height : 50,
+                        lineColor: "#ffffff",
+                        fillColor: "#999999"
+                    }, {
+                        type : "SegmentsWidget",
+                        requires : [{
+                            type : "TooltipWidget",
+                            width : 180,
+                            height : 160,
+                        }]
+                    }, {
+                        type : "createAnnotationWidget",
+                        polemic_mode : false,
+                        remote_tags :  {
+                            id : "cinecast",
+                            url : "http://festival.cinecast.fr/configuration.json",
+                            alias : 'http://festival.cinecast.fr/configuration.jsonp?jsonp=?'
+                        },
+                        random_tags : 3,
+                        disable_share: true,
+                        api_endpoint_template : "endpoint/{{id}}.json",
+                        api_method : 'POST'
+                    }, /* {
+                        type: "TraceWidget",
+                     //   js_console : true,
+                        url: "http://traces.advene.org:5000/",
+                        requestmode: 'GET',
+                        syncmode: "sync"
+                    } */ ]
+                },
+                player : {
+                    type : 'allocine', // player type
+                    height : 300,
+                    width : 610,
+                    acPlayerUrl : "allocine_test/AcPlayer_v3.0_new.swf",
+                    autoPlay : "true",
+                    urlAcData : "allocine_test/data_cinecast_new.xml"
+                },
+                modules : [{
+                    type : "MediaFragment",
+                    metadata : {
+                        format : 'cinelab',
+                        src : json_url,
+                        type : 'json'
+                    }
+                }]
+
+            };
+
+            IriSP.initPlayer(config, json_url);
+
+        </script>
+    <div id="MyListContainer" style="float: left; width: 400px;"></div>
+    </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/allocine_dossier_independant/test-vodkaster.htm	Fri Apr 06 16:49:32 2012 +0200
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html dir="ltr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml" lang="fr">
+    <head>
+        <title>Metadataplayer - Polemic tweet integration test</title>
+    </head>
+    <body style="background: #222222; color: #ff00ff;">
+        <div style="width:650px;">
+            <h1>MetaDataPlayer</h1>
+            Integration test - ALLOCINE PLAYER
+        </div>
+        <!-- START Integration  ###################################### -->
+        <!-- SIMPLE PLAYER EXPERIMENTATION -->
+        <script type="text/javascript" src="js/LdtPlayer-release.js" type="text/javascript"></script>
+        <div id="video"></div>
+        <div id="LdtPlayer" style="float: left;"></div>
+        <div id="Sparkline"></div>
+        <script  type="text/javascript">
+            var json_urls = {
+                'media' : 'json_examples/media.json', // http://cinecastdev.vodkaster.com/api/medias/cinecast-bamako/
+                'extracts' : 'json_examples/extracts.json', // http://cinecastdev.vodkaster.com/api/medias/cinecast-bamako/extracts
+                'annotations' : 'json_examples/annotations.json' // http://cinecastdev.vodkaster.com/api/medias/cinecast-bamako/annotations
+            }
+            
+            IriSP.user = {
+                name : 'awesome_user_name',
+                avatar : 'allocine_test/avatar.png'
+            };
+            IriSP.libFiles.defaultDir = "/metadataplayer/src/js/libs/";
+            
+            var config = {
+                gui : {
+                    width : 610,
+                    height : 900,
+                    container : 'LdtPlayer',
+                    css : 'css/LdtPlayer.css',
+                    default_options : {
+                        width: 610,
+                        cinecast_version: true,
+                        metadata : {
+                            format : 'cinelab',
+                            src : json_urls['annotations'],
+                            type : 'json'
+                        }
+                    },
+                    widgets : [{
+                        type : "AnnotationsListWidget",
+                        container : "MyListContainer", // div dans lequel sera affiché "Annotations Liées"
+                        ajax_mode : false, // nécessaire pour des raisons historiques
+                        refresh_interval : 15 *60 * 1000 // 15 minutes
+                    }, {
+                        type : "SparklineWidget",
+                        height : 50,
+                        lineColor: "#ffffff",
+                        fillColor: "#999999"
+                    }, {
+                        type : "SegmentsWidget",
+                        metadata : {
+                            format : 'cinelab',
+                            src : json_urls['extracts'],
+                            type : 'json'
+                        },
+                        requires : [{
+                            type : "TooltipWidget",
+                            width : 180,
+                            height : 160,
+                        }]
+                    }, {
+                        type : "createAnnotationWidget",
+                        polemic_mode : false,
+                        remote_tags : {
+                            id : "cinecast",
+                            url : "http://festival.cinecast.fr/configuration.json",
+                            alias : 'http://festival.cinecast.fr/configuration.jsonp?jsonp=?'
+                        },
+                        random_tags : 3,
+                        disable_share: true,
+                        api_endpoint_template : "endpoint/{{id}}.json",
+                        api_method : 'POST'
+                    }, {
+                        type: "TraceWidget",
+                     //   js_console : true,
+                        url: "http://traces.advene.org:5000/",
+                        requestmode: 'GET',
+                        syncmode: "sync"
+                    } ]
+                },
+                player : {
+                    type : 'allocine', // player type
+                    height : 300,
+                    width : 610,
+                    acPlayerUrl : "allocine_test/AcPlayer_v3.0_new.swf",
+                    autoPlay : "true",
+                    urlAcData : "allocine_test/data_cinecast_new.xml"
+                },
+                modules : [{
+                    type : "MediaFragment",
+                    metadata : {
+                        format : 'cinelab',
+                        src : json_urls['media'],
+                        type : 'json'
+                    }
+                }]
+
+            };
+
+            IriSP.initPlayer(config, json_urls['media']);
+
+        </script>
+    <div id="MyListContainer" style="float: left; width: 400px;"></div>
+    </body>
+</html>
--- a/test/integration/polemic.htm	Tue Apr 03 20:30:12 2012 +0200
+++ b/test/integration/polemic.htm	Fri Apr 06 16:49:32 2012 +0200
@@ -21,6 +21,7 @@
   <div id="LdtPlayer"></div>
   
   <script  type="text/javascript">
+  IriSP.libFiles.defaultDir = "/metadataplayer/src/js/libs/";
 IriSP.jwplayer_swf_path = "../libs/player.swf";
     var file = "polemic_fr.json";
     var config = {