Formualire saisie d'URL vidéo : comment faire ?

cs_aloisio11 Messages postés 126 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 7 décembre 2009 - 14 juil. 2008 à 12:55
cs_stafa112 Messages postés 4 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 septembre 2009 - 6 sept. 2009 à 20:27
Bonjour à tous,

Je développe un site en PHP/MySQL sur lequel j'ai un formulaire dans lequel le visiteur pourra saisir un lien vers une vidéo (Youtube, dailymotion , ...).

Mais le problème que dois-je lui faire saisir ?
Sur Youtube par exemple il y URL de la page de la vidéo (http://www.youtube.com/watch?v=ek2ZD2F8D8c) ou le code qu'il propose (<object width="425" height="344">

</object>)

Que dois-je faire sélectionner au visiteur, sachant qu'ils sont pas tous très doué :lol: et qu'il y a différent "site support" tel Youtube, Dailymotion, Yahoo Video, ... ?

Merci d'avance

13 réponses

Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
14 juil. 2008 à 16:21
Il faudra entrer l'url de la page de la video.
Enfin ca dépend de ce que tu veux en faire.

Et pour le "support", ptetre mettre juste le nom du site.
0
cs_aloisio11 Messages postés 126 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 7 décembre 2009
14 juil. 2008 à 17:02
Oui mais c'est pas évident car il y a plusieurs hébergeurs de vidée tel Youtube, Dailymotion, ... chacun a son codage après et on peut pas demander au visiteur de mettre chez qui il a pris la vidéo. Faut pas trop leur en demander :)
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
15 juil. 2008 à 11:30
Hello,

on peut dire que c'est ton jour de chance, j'ai fait la même chose hier... pour YouTube en tout cas, Dailymotion j'ai pas encore fait.

à+

<?php

        $lang['video']['0'] = '';
        $lang['video']['1'] = 'L\'adresse est invalide. Veuillez entrez uniquement l\'URL de la page
(ex: http://www.youtube.com/watch?v=uttrX3YZ63W).';
        $lang['video']['3'] = 'Un problème technique est survenu. Un administrateur a été averti et le problème devrait être résolu rapidement.';
        $lang['video']['4'] = 'Le propriétaire de cette vidéo n\'a pas souhaité qu\'elle puisse apparaître sur d\'autres sites.';

function video_getcode($url){
   
    $error_nb = 0;
    $code = '';
       
    if($url = parse_url($url)){
       
        $host = explode('.', $url['host']);
       
        switch($host[count($host) - 2].'.'.$host[count($host) - 1]){
           
            case 'youtube.com':
               
                if($html = file_get_contents($_POST['url'])){
                   
                    $html = explode (' asXML();
                           
                        }
                        else {
                            $error_nb = 4;
                        }
                    }
                    else {
                        $error_nb = 3;
                    }
                }
                else {
                    $error_nb = 1;
                }
               
                break;
           
            case 'dailymotion.com':
               
                break;
           
            default: $error_nb = 1;
        }
    }
    else {
        $error_nb = 1;
    }
   
    if($error_nb != 0){
        //WARN ADMINISTRATOR
    }
   
    return array('error_nb' => $error_nb, 'source' => $host[count($host) - 2], 'code' => $code);
}

//pour tester :
$_POST['url'] = 'http://www.youtube.com/watch?v=uttrX1YZ63U';

if(isset($_POST['url']) and isset($_POST['string_id'])){
    $result = video_getcode($_POST['url']);
    echo $result['error_nb'].'#'.$lang['video'][$result['error_nb']].'#'.$result['code'];
}

?>
0
cs_aloisio11 Messages postés 126 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 7 décembre 2009
15 juil. 2008 à 15:10
Ca à l'air pas mal.


Je vais essayer ça.


Merci beaucoup ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
15 juil. 2008 à 15:27
Ha zut j'ai écourté le code pour toi et j'ai laissé   $code = $xml -> asXML(); alors que ce serait plutôt $code = $html; en l'occurence.

Tu verras ça marche bien ;)
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
15 juil. 2008 à 15:29
Et if(isset($_POST['url']) and isset($_POST['string_id'])){ c'est plutôt if(isset($_POST['url'])){...

...décidémment...
0
cs_stafa112 Messages postés 4 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 septembre 2009
12 août 2009 à 15:05
J'ai testé ce code et ça affiche :"3#Un problème technique est survenu. Un administrateur a été averti et le problème devrait être résolu rapidement.#"

Comment resoudre ce probleme?
Merci
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
12 août 2009 à 22:00
Bonsoir,

c'est dû au fait que Youtube et Dailymotion ont tous les deux modifié le code de leur page.

Je vais voir de quoi il s'agit et je reviens donner la solution, ce n'est rien de méchant.
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
12 août 2009 à 23:03
Voilà, il y a un passage à modifier pour youtube :

case 'youtube.com':
               
                if($html = file_get_contents($_POST['url'])){
                   
                    $html = explode ('<input id="embed_code" name="embed_code" type="text" value="', $html);
                   
                    if(isset($html[1])){
                       
                        $html = explode ('"', $html[1]);
                        $html = $html[0];


et un autre pour Dailymotion :
//get the code in the input
$html = explode ('input type="text" readonly="readonly" onclick="this.select();" value="', $html);

if(isset($html[2])){

$html = explode ('" class="text embed_input" id="video_player_embed_code_text"', $html[2]);
$html = $html[0];


Bonne soirée
0
cs_stafa112 Messages postés 4 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 septembre 2009
15 août 2009 à 04:54
Merci infiniment ça marche tres bien .Moi j'ai un site de video et j'aimerai lire aussi des videos youtube avec mon lecteur c'est possible?comment puis avoir le lien du video .flv à partir du lien de la page?
Merci
0
cs_stafa112 Messages postés 4 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 septembre 2009
15 août 2009 à 04:58
Autre chose comment peut on avoir aussi le titre et la description de la video?
Concernant l'image j'ai trouvé. J'ai lu ce tutoriel mais j'ai pas bien compris : http://flex.mediabox.fr/index.php?showtopic=73894
Merci
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
15 août 2009 à 19:00
Bonsoir, pour récupérer le titre et la description, c'est sur le même principe, il faut faire la dissection du html de la page pour récupérer l'info. Exactement comme j'ai fait pour récupérer le lecteur.

Quant à récupérer les vidéos, oui c'est possible mais c'est contraire aux règles d'utilisation de Youtube, tu t'exposerais à des poursuites.
0
cs_stafa112 Messages postés 4 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 6 septembre 2009
6 sept. 2009 à 20:27
Comment peut on recuperer avec cette methode l'image,la description et aussi la durée de video?
Merci
0
Rejoignez-nous