Zu Handbuch Javascript-API

Golem.Api.Video.Meta – Metadaten eines Videos holen

Mit der Klasse Golem.Api.Video.Meta laden Sie die Metadaten eines bestimmten Videos. Beachten Sie, dass unter einem Video-Identifier nicht eine bestimme Videodatei referenziert wird, sondern die allgemeinen Merkmale eines Videos. Dazu gehören auch die Verweise auf die jeweiligen Videodateien.

Inhalt

Einbindung

Javascript-Datei Golem/Api/Video/Meta.js
Golem/Api/Video/Meta-min.js
Package-Javascript-Datei Golem/Api/Video-full.js
Golem/Api/Video-full-min.js
Erforderliche Klassen Golem.Request
Golem.Api
<!-- Erforderlich -->
<script type="text/javascript" src="http://api.golem.de/download/js/latest/Golem/Core-min.js"></script>

<!-- Klasse -->
<script type="text/javascript" src="http://api.golem.de/download/js/latest/Golem/Api/Video/Meta.js"></script>

Verwendung

Nehmen wir an, Sie wollen in eine leere HTML-Tabelle den Titel, Spieldauer und Links zu den Videodateien in den verschiedenen Auflösungen eines Videos anzeigen. Die Tabelle sieht wie folgt aus:

<table border="1" width="100%">
 <tr>
  <th>Video-Identifer:</th>
  <td id="meta_id"></td>
 </tr>
 <tr>
  <th>Titel:</th>
  <td id="meta_title"></td>
 </tr>
 <tr>
  <th>Spieldauer in Sekunden:</th>
  <td id="meta_playtime"></td>
 </tr>
 <tr>
  <th>Normale Auflösung:</th>
  <td id="meta_medium"></td>
 </tr>
 <tr>
  <th>Höhe Auflösung:</th>
  <td id="meta_high"></td>
 </tr>
 <tr>
  <th>Auflösung für spezielle Geräte:</th>
  <td id="meta_high"></td>
 </tr>
</table>
Beispiel 1: HTML-Tabelle für die Videodaten

Der zugehörige Javascript-Code soll diese Tabelle mit den Metadaten eines Videos füllen. Dem Construktor der Klasse Golem.Api.Video.Meta übergeben Sie den Identifier des Videos. Anschließend rufen Sie die fetch()-Methode des Objektes auf. Als Parameter für den Aufruf wird ein Objekt-Literal übergeben. Es enthält nur ein Objekt-Property fnSuccess, dem eine Funktion zugewiesen wird. War die Daten-Abfrage erfolgreich, wird diese Funktion aufgerufen und Sie können die Tabelle befüllen.


Golem.Request.KEY = '<ENTWICKLERSCHLÜSSEL>';

var oMeta = new Golem.Api.Video.Meta(12565);

oMeta.fetch(
    {
        fnSuccess : fillTable
    }
);
Beispiel 2: Abfrage der Videodaten

Die Funktion zum Füllen der Tabelle benutzt die Methode getValue(), um einen Metadaten-Wert als Inhalt für die jeweilige Tabellenzelle einzufügen. Die Füll-Funktion läuft dabei innerhalb des Scopes des oMeta-Objektes, weshalb Sie getValue mit this referenzieren können. Beachten Sie, dass nur die Medium-Version des Videos tatsächlich vorhanden sein muss. Die High- und Apple-Varianten sind optional. Sie müssen also explizit prüfen, ob eine URL zur Videodatei übergeben wurde.


function fillTable() {

 document.getElementById('meta_id').innerHTML           = this.getValue('videoid');

 document.getElementById('meta_title').innerHTML     = this.getValue('title');

 document.getElementById('meta_playtime').innerHTML  = this.getValue('playtime');

 var medium = this.getValue('medium');
 var high   = this.getValue('high');
 var apple  = this.getValue('apple');

 if('' != medium.videourl) {

     document.getElementById('meta_medium').innerHTML = '<a href="'+medium.videourl+'" target="_blank">'+medium.videourl+'</a>';

 } else {

     document.getElementById('meta_medium').innerHTML = 'Nicht verfügbar';

 }

 if('' != high.videourl) {

     document.getElementById('meta_high').innerHTML = '<a href="'+high.videourl+'" target="_blank">'+high.videourl+'</a>';

 } else {

     document.getElementById('meta_high').innerHTML = 'Nicht verfügbar';

 }
 
 if('' != apple.videourl) {

     document.getElementById('meta_apple').innerHTML = '<a href="'+apple.videourl+'" target="_blank">'+apple.videourl+'</a>';

 } else {

     document.getElementById('meta_apple').innerHTML = 'Nicht verfügbar';

 }

}
Beispiel 3: Funktion zum Füllen der HTML-Tabelle

Fehlerbehandlung

Während der Datenabfrage können Fehler auftreten:

  • Golem.Api.Video.Meta.ERROR_INVALID_IDENTIFIER bedeutet, dass der übergebene Video-Identifier nicht die korrekte Form aufweist oder kein zugehöriges Video existiert. Ein Video-Identifier besteht immer nur aus Ziffern.

Um eine fehlerhafte Abfrage abzufangen, geben Sie bei der Methode fetch() eine Funktion für die Fehlerbehandlung an:

...
oMeta.fetch(
    {
        fnSuccess : fillTable,
        fnError   : handleError
    }
);
...
Beispiel 4: Abfrage ergänzt um Fehlerbehandlung

Der Fehler-Funktion wird als erster Parameter der Fehlercode übergeben, als zweiter eine Fehlermeldung. Auch diese Funktion läuft innerhalb des Scopes des oMeta-Objektes.


function handleError(errorCode, errorMessage) {

    var msg = '';

    switch(errorCode) {

        case Golem.Api.Video.Meta.ERROR_INVALID_IDENTIFIER :
            msg = 'Fehlerhafter Video-Identifier';
            break;

        default :
            msg = 'Unbekannter Fehler!';
    }
    
    alert(msg);

}
Beispiel 5: Funktion zur Fehlerbehandlung

Verfügbare Metadaten

Derzeit werden folgende Metadaten eine Videos geliefert:

Name Bedeutung
videoid Video-Identifier
embeddedcode Der HTML-Code für die Einbindung des Golem.de-Players mit dem Video
pageurl Die URL zur Videoseite
title Der Titel des Videos
playtime Die Länge des Videos in Sekunden
medium Ein Objekt-Literal mit den Daten der Videodatei in normaler Auflösung. Die Eigenschaften des Objektes umfassen:
  • medium.videourl – Die URL der Videodatei
  • medium.width – Die Breite des Videos in Pixel
  • medium.height – Die Höhe des Videos in Pixel
  • medium.size – Die Dateigröße der Videodatei
  • medium.mimetype – Der Mimetyp der Videodatei
  • medium.image – Ein Objekt-Literal mit den Daten des Teaserbild des Videos
    • medium.image.url – Die URL des Teaserbildes
    • medium.image.width – Die Breite des Bildes in Pixel
    • medium.image.height – Die Höhe des Bildes in Pixel
high Ein Objekt-Literal mit den Daten der Videodatei in normaler Auflösung. Die Eigenschaften des Objektes umfassen:
  • high.videourl – Die URL der Videodatei
  • high.width – Die Breite des Videos in Pixel
  • high.height – Die Höhe des Videos in Pixel
  • high.size – Die Dateigröße der Videodatei
  • high.mimetype – Der Mimetyp der Videodatei
  • high.image – Ein Objekt-Literal mit den Daten des Teaserbild des Videos
    • high.image.url – Die URL des Teaserbildes
    • high.image.width – Die Breite des Bildes in Pixel
    • high.image.height – Die Höhe des Bildes in Pixel
apple Ein Objekt-Literal mit den Daten der Videodatei in normaler Auflösung. Die Eigenschaften des Objektes umfassen:
  • apple.videourl – Die URL der Videodatei
  • apple.width – Die Breite des Videos in Pixel
  • apple.height – Die Höhe des Videos in Pixel
  • apple.size – Die Dateigröße der Videodatei
  • apple.mimetype – Der Mimetyp der Videodatei
  • apple.image – Ein Objekt-Literal mit den Daten des Teaserbild des Videos
    • apple.image.url – Die URL des Teaserbildes
    • apple.image.width – Die Breite des Bildes in Pixel
    • apple.image.height – Die Höhe des Bildes in Pixel

Vollständiges Beispiel

<html>

 <head>
  <script type="text/javascript" src="http://api.golem.de/download/js/latest/Golem/Core-min.js"></script>
  <script type="text/javascript" src="http://api.golem.de/download/js/latest/Golem/Api/Video/Meta.js"></script>
  <script type="text/javascript">

  function start() {

   Golem.Request.KEY = '<Entwicklerschlüssel>';

   var oMeta = new Golem.Api.Video.Meta(2227);

   oMeta.fetch(
    {
        fnSuccess : fillTable,
        fnError   : handleError

    }
   );

  }

  function fillTable() {

       document.getElementById('meta_id').innerHTML        = this.getValue('videoid');

       document.getElementById('meta_title').innerHTML     = this.getValue('title');

       var playtime = this.getValue('playtime');

       var min = Math.floor(playtime/60);
       var sec = parseInt(playtime - (min * 60));

       if(sec < 10) {
            sec = '0' + sec;
       }

       document.getElementById('meta_playtime').innerHTML  = min + ':' + sec;//this.getValue('playtime');

       var medium = this.getValue('medium');
       var high   = this.getValue('high');
       var apple  = this.getValue('apple');

       if('' != medium.videourl) {

           document.getElementById('meta_medium').innerHTML = '<a href="'+medium.videourl+'" target="_blank">'+medium.videourl+'</a>';

       } else {

           document.getElementById('meta_medium').innerHTML = 'Nicht verfügbar';

       }

       if(high && '' != high.videourl) {

           document.getElementById('meta_high').innerHTML = '<a href="'+high.videourl+'" target="_blank">'+high.videourl+'</a>';

       } else {

           document.getElementById('meta_high').innerHTML = 'Nicht verfügbar';

       }

       if(apple && '' != apple.videourl) {

           document.getElementById('meta_apple').innerHTML = '<a href="'+apple.videourl+'" target="_blank">'+apple.videourl+'</a>';

       } else {

           document.getElementById('meta_apple').innerHTML = 'Nicht verfügbar';
      
       }

  }

  function handleError(errorCode, errorMessage) {
  
      var msg = '';

      switch(errorCode) {

          case Golem.Api.Video.Meta.ERROR_INVALID_IDENTIFIER :
              msg = 'Fehlerhafter Video-Identifier';
              break;

          default :
              msg = 'Unbekannter Fehler!';
      }

      alert(msg);

  }

  </script>

 </head>

 <body onload="start()">
 
    <table border="1" width="100%">
     <tr>
      <th>Video-Identifer:</th>
      <td id="meta_id"></td>
     </tr>
     <tr>
      <th>Titel:</th>
      <td id="meta_title"></td>
     </tr>
     <tr>
      <th>Spieldauer in Minuten und Sekunden:</th>
      <td id="meta_playtime"></td>
     </tr>
     <tr>
      <th>Normale Auflösung:</th>
      <td id="meta_medium"></td>
     </tr>
     <tr>
      <th>Höhe Auflösung:</th>
      <td id="meta_high"></td>
     </tr>
     <tr>
      <th>Auflösung für spezielle Geräte:</th>
      <td id="meta_apple"></td>
     </tr>
    </table>


 </body>

</html>



Zu Handbuch Javascript-API