Intégration des vidéos Canal-U à un opac

De Bibliopedia
Aller à : navigation, rechercher

Cette page reprend les étapes permettant l'intégration à un catalogue de bibliothèque des vidéos pédagogiques disponibles sur le site Canal-U<ref>http://www.canal-u.tv/</ref> développé par le CERIMES. Cette page part du cas concret d'une intégration par Bordeaux 3 dans le catalogue Babord+ et ne sera pas forcément applicable en l'état à votre catalogue. Le but est surtout de donner une liste d'étapes servant de guide.

La procédure indiquée dans ce document fonctionne au 24 janvier 2013 mais reste dépendante des évolutions de la plate-forme Canal-U.

Pré-requis[modifier]

  • Un catalogue qui soit capable de récupérer des métadonnées distantes via le protocole OAI.
  • La possibilité d'intervenir sur l'interface de son catalogue pour modifier le javascript (et pour plus de simplicité la présence de la librairie jquery<ref>http://jquery.com : librairie javascript simplifiant le développement dans ce langage</ref> dans les templates)

Récupération des métadonnées[modifier]

La base Canal-U est mise à disposition via OAI à l'adresse http://www.canal-u.tv/oai2/index.php. Ce serveur peut être moissonné par tout outil compatible OAI et va permettre de récupérer les notices descriptives des vidéos (titre, auteur, date, indexation, résumé, url de la notice<ref>Exemples de notices XML récupérées</ref>).

À partir de là on est déjà capable de proposer à ses usagers le signalement de la vidéo, il lui suffit ensuite de se rendre sur la plate-forme canal-u.tv pour la consulter.

Intégration du lecteur vidéo dans le catalogue[modifier]

Récupération de l'adresse intégrable[modifier]

Plus intéressant est la possibilité d'intégrer directement les vidéos Canal-U dans son opac. Pour cela, Canal-U propose un lecteur exportable<ref>Aide - Canal-U > Comment utiliser le lecteur exportable ?</ref>. Si l'on regarde sur une page de Canal-U la manière dont est intégrable ce lecteur exportable on voit que l'on a un code proposé qui correspond à l'usage d'une iframe :

<iframe src="http://www.canal-u.tv/video/centre_d_enseignement_multimedia_universitaire_c_e_m_u/embed.1/culture_numerique_07_wikipedia.8398?width=550&amp;height=340" allowfullscreen="" frameborder="0" height="340" scrolling="no" width="550"></iframe>

Si l'on cherche cette même vidéo sur le serveur OAI de Canal-U<ref>http://www.canal-u.tv/oai2/index.php?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:canal-u.fr:8398</ref>, on voit que le lien proposé est différent du lien d'intégration :

<dc:identifier>http://www.canal-u.tv/?redirectVideo=8398</dc:identifier>

Il n'est pas possible à partir de cette information récupérée via OAI d'intégrer directement le lecteur exportable. Il faut retrouver l'url contenant le nom de la vidéo (http://www.canal-u.tv/video/centre_d_enseignement_multimedia_universitaire_c_e_m_u/embed.1/culture_numerique_07_wikipedia.8398?width=550&height=340). Pour cela nous avons mis en place un script intermédiaire<ref>Disponible sur github</ref> qui va nous envoyer à partir d'une url "OAI", un tableau JSON contenant : l'url dépliée de la page de description de la vidéo ainsi que l'url à utiliser dans l'iframe : exemple avec l'url OAI http://www.canal-u.tv/?redirectVideo=8398.

Appel depuis le catalogue[modifier]

Il est possible à partir du moment où l'on a la possibilité de modifier les templates de son catalogue et d'y intégrer du javascript afin d'ajouter automatiquement le lecteur.

// L'utilisation de ce script repose sur la présence dans l'interface de la bibliothèque JQuery
$(document).ready(function() {
  // Vérification de la provenance, pour être sûr que l'on ait sur une page de vidéo Canal-U
  var provenance = $("#sid-tab-fiche-technique dd:contains('Canal U')");
  if (provenance.length)
  {
    // On cherche à l'aide d'un sélecteur jquery une url qui commence par http://www.canal
    var url = $("#sid-tab-exemplaires").find("a[href^='http://www.canal']");

    // On affiche une icône de chargement le temps de réfléchir 
    var html_orig = $("#sid-tab-exemplaires").html($("#img_loading"));
    $("#img_loading").show();

    // On ne va interroger le serveur que si l'url est disponible (sinon c'est un bug de toutes manières)
    if (url.length)
    {
      // Récupération du lien http://www.canal-u.tv/?redirectVideo=* et transmission au serveur
      var url_direct = $(url[0]).attr("href");
      var url_outil = "http://scd.u-bordeaux3.fr/babordplus_outils/canalu.php?url=" + encodeURI(url_direct) + "&callback=?";
      $.getJSON(url_outil, 
        function(data) {
          // On va pouvoir encapsuler la vidéo à partir de l'url retournée ainsi qu'un lien vers la notice source.
          $("#sid-tab-exemplaires").html("<p style='text-align:center'>Consultez la <a href='" + data["url"] + "'>fiche du film</a> sur le site de Canal-U</p><iframe src='" + data["url_embed"] + "?width=900px&height=500px' width='900px' height='500px' scrolling='no'/>");
        }
      );
    }
  }
});

Notes et références[modifier]

<references/>