Conception de Sites Web

Dernières Réalisations

Frédéric FilipuzziMonte Cristo 3Démo de notre CMS Voir nos réalisations

Devis Gratuit

Recevez votre devis en moins de 48h, sans aucun engagement.

 








   
coût création site web création de mon site devis création site outils création site web création site internet
Accueil  Ressources - FAQ  

API Dailymotion

API de developpement Dailymotion pour l'Upload de Vidéos

.

Voici un exemple d'intégration de l'API Dailymotion.

Cette API permet d'Uploader des Vidéos depuis votre propre site vers Dailymotion, via l'Uploader.

La liste de vos vidéos, ainsi que les informations concernant votre profil Dailymotion sont ensuite récupérées par des Flux RSS.

L'API en détails : http://www.dailymotion.com/api

Dans notre exemple, le flux RSS est récupéré, puis enregistré en base de donnée afin de s'en reservir au sein de notre CMS, mais on peut imaginer récupérer le flux et l'afficher directement.

L'Uploader Dailymotion est appellé dans une IFRAME, l'ID de l'Iframe vous permettra d'y Attribuer des styles CSS, poru lui donner une taille par exemple. (le code fourni par Dailymotion n'était pas tout à fait propre...).

La fonction affiche_player() génère le code du player Dailymotion, de manière "propre", valide W3C.

-- 
-- Structure de la table `stream_videos`
-- CREATE TABLE `stream_videos` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(100) NOT NULL,
  `file_id` varchar(50) NOT NULL,
  `author` varchar(50) NOT NULL,
  `pub_date` varchar(100) NOT NULL,
  `url` varchar(200) NOT NULL,
  `obj_code` text NOT NULL,
  `thumb` text NOT NULL,
  `site` varchar(30) NOT NULL,
  `sync_date` datetime NOT NULL,
`categorie` varchar(30) NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;

 Notre Script nécessite MagPIE RSS pour Parser le Flux RSS : http://magpierss.sourceforge.net/

Voici le code du script :
ATTENTION : pensez à ajouter le code de connexion à votre base de donnée si vous voulez stocker le résultat, le code ci-dessous est extrait d'un module de notre CMS, il aura peut être besoin d'être completé pour fonctionner chez vous.

<?
$tablestreamvideos = 'stream_videos';
$pseudo_dailymotion = 'votre_pseudo';
// domaine qui sera enregistré en référence, pour retrtouver les vidéos dans la table
$site = 'dailymotion.com';
$feed = 'http://www.dailymotion.com/rss/'.$pseudo_dailymotion.'/1';
## FONCTIONNEMENT DU SCRIPT ########
/*
1 - on récupère le Flux Rss, on le parse avec MagPie
2 - Si l'array Magpie est bien généré, on lance le traitement
3 - Reset champ SYNC, avoir de faire le test en fin de traitement
4 - Test si vidéo Existe, et traitement en fonction (INSERT / UPDATE)
5 - En fin de traitement, on supprime les items dont le champ SYNC n'a pas bougé
*/
?>
<div>
<p>Liste des Vidéos de votre espace DailyMotion (Récupération automatique). Pseudo DailyMotion utilisé : <b><?=$pseudo_dailymotion?></b></p>
<?php
function affiche_player($id, $width, $height)
{
 $player = '<object type="application/x-shockwave-flash" width="'.$width.'" height="'.$height.'" data="http://www.dailymotion.com/swf/'.$id.'">
 <param name="movie" value="http://www.dailymotion.com/swf/'.$id.'"></param>
 <param name="allowFullScreen" value="true"></param>
 <param name="allowScriptAccess" value="always"></param>
 </object>';
 
 return $player;
}
// Affichage du Array Principal
$DM_galerie = array();
// Lecture du Flux #1
$rss = fetch_rss($feed);
// print_r($rss->items);
// $items = array_slice($rss->items, 0, 10);
 if (is_array($rss->items))
 {
 
    // On vide la colonne sync_date
    $sql_sync = 'UPDATE `'.$tablestreamvideos.'` SET `sync_date`="0000-00-00 00:00:00" WHERE `site`="'.$site.'"';
    $req_sync = mysql_query($sql_sync);
    
   // Boucle sur tous les éléments
   foreach ($rss->items as $item)
   {
        $title = $item['title'];
        $file_id = $item['dm']['id'];
        $author = $item['dm']['author'];
        $pub_date = $item['pubdate'];
        $url = $item['guid'];
        $obj_code = addslashes($item['media']['player']);
        $thumb = addslashes($item['media']['thumbnail']);
        $sync_date = now();
        
          
$postvars_stream = array('', $title, $file_id, $author, $pub_date, $url, $obj_code, $thumb, $site, $sync_date, $categorie);
     $sql_test = 'SELECT `id` FROM `'.$tablestreamvideos.'` WHERE `file_id`="'.$file_id.'"';
     $test_file_id = mysql_evaluate($sql_test);
     if (is_numeric($test_file_id))
     {
      // Mise à jour de l'item
      $update = 'UPDATE `'.$tablestreamvideos.'`
      SET
      `title` = "'.$title.'",
      `file_id` = "'.$file_id.'",
      `author` = "'.$author.'",
      `pub_date` = "'.$pub_date.'",
      `url` = "'.$url.'",
      `obj_code` = "'.$obj_code.'",
      `thumb` = "'.$thumb.'",
      `site` = "'.$site.'",
      `sync_date` = "'.$sync_date.'"
      WHERE `id` = "'.$test_file_id.'"
      ';
      
      $save = mysql_query($update);
      if ($save==true)
      {
       $updated[] = $test_file_id;
      }
     }
     else
     {
      // Enregistrement de l'item
      $save = enregistre_dyn($postvars_stream, $tablestreamvideos,'');
      $saved[] = $save;
     }
     $test_file_id = '';
     $title = '';
     $file_id = '';
     $author = '';
     $pub_date = '';
     $obj_code = '';
     $thumb = '';
     $sync_date = '';
     $update = '';
     $save = '';
  }
  
    // supprime les items dont la date de SYNC est vide (non synchronisé)
    $sql_delete = 'DELETE FROM `'.$tablestreamvideos.'` WHERE `sync_date`="0000-00-00 00:00:00" AND `site`="'.$site.'"';
    $req_delete = mysql_query($sql_delete);
    
    
 }
$nb_maj = count($updated);
$nb_insert = count($saved);
echo 'Mises à jour : '.$nb_maj.' / Ajoutées : '.$nb_insert;
echo '<hr />';
$affiche_thumbs = '<div id="galerie_videos">';
/// AFFICHAGE DES MINIATURES
$sql_load = 'SELECT * FROM `'.$tablestreamvideos.'` WHERE `site`="'.$site.'"';
$req_load = mysql_query($sql_load);
while ($video = mysql_fetch_assoc($req_load))
{
 $affiche_thumbs .= '<div class="stream">';
 $affiche_thumbs .= '<div class="title">'.$video['title'].'</div>';
 $affiche_thumbs .= '<div class="thumb">'.affiche_player($video['file_id'], '200px', '150px').'</div>';
 $affiche_thumbs .= '<div class="id">ID : <input value="'.$video['file_id'].'"/></div>';
 $affiche_thumbs .= '<div class="buttons"></div>';
 $affiche_thumbs .= '</div>';
}
$affiche_thumbs .= '</div>';
echo  $affiche_thumbs;
?>
</div>
<!-- APPEL DE L'UPLOADER DAILYMOTION //-->
<iframe id="dm_uploader_iframe"
src="http://www.dailymotion.com/widget/upload/?skin=default&amp;web=1">
</iframe>

 

CMS développé sur mesure par Conception internet doubs

Connexion

OK

Mot de passe perdu ?