Quelqu'un peut-il me donner une idée de la façon dont nous pouvons afficher ou intégrer une vidéo YouTube si nous ne disposons que de l'URL ou du code Embed?
Réponses
Trop de publicités?Vous avez qu'à demander aux utilisateurs de stocker le 11 code de caractère à partir de la vidéo youtube.
Par exemple http://www.youtube.com/watch?v=Ahg6qcgoay4
Le onze de code de caractère est : Ahg6qcgoay4
Vous prenez alors ce code et de le placer dans votre base de données. Alors, où que vous voulez placer la vidéo youtube dans votre page, charge le caractère à partir de la base de données et de mettre le code suivant:-
par exemple, pour Ahg6qcgoay4, ce sera :
<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4" /></object>
Ne pas stocker le code d'intégration dans votre base de données -- YouTube peut changer le code embed et les paramètres d'URL, de temps à autre. Par exemple, l' <object>
code d'intégration a été mis à la retraite en faveur de l' <iframe>
code embed. Vous devez analyser la vidéo id de l'URL/embed code (à l'aide d'expressions régulières, l'URL de l'analyse des fonctions ou de l'analyseur HTML) et de les stocker. Puis l'afficher à l'aide quel que soit le mécanisme actuellement offertes par les API YouTube.
Je vous suggère de regarder ces articles pour savoir quoi faire avec ces identifiants:
- Intégration de Vidéos YouTube, des listes de lecture et Plus avec IFrame Intègre
- YouTube JavaScript Joueur avec Playlist
Un naïf en PHP, par exemple pour l'extraction de la vidéo id est comme suit:
<?php
preg_match(
'/[\\?\\&]v=([^\\?\\&]+)/',
'http://www.youtube.com/watch?v=OzHvVoUGTOM&feature=channel',
$matches
);
// $matches[1] should contain the youtube id
?>
Pour créer votre propre lecteur de vidéo de YouTube:
À partir des URL youtube longues et courtes, vous pouvez obtenir l’intégration suivante:
$ytarray=explode("/", $videolink);
$ytendstring=end($ytarray);
$ytendarray=explode("?v=", $ytendstring);
$ytendstring=end($ytendarray);
$ytendarray=explode("&", $ytendstring);
$ytcode=$ytendarray[0];
echo "<iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/$ytcode\" frameborder=\"0\" allowfullscreen></iframe>";
J'espère que ça aide quelqu'un
Utiliser une regex pour extraire la vidéo "id" après l' watch?v=
Stocker la vidéo id dans une variable, appelons cette variable vid
Obtenir le code d'intégration d'une vidéo aléatoire, retirer la vidéo id dans le code d'intégration et de le remplacer avec de l' vid
que vous avez obtenu.
Je ne sais pas comment traiter avec les regex en php, mais il ne devrait pas être trop dur
Voici un exemple de code en python:
>>> ytlink = 'http://www.youtube.com/watch?v=7-dXUEbBz70'
>>> import re
>>> vid = re.findall( r'v\=([\-\w]+)', ytlink )[0]
>>> vid
'7-dXUEbBz70'
>>> print '''<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/%s&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/%s&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>''' % (vid,vid)
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
>>>
L'expression régulière v\=([\-\w]+)
la capture d'une (sous -) chaîne de caractères et les traits qui vient après l' v=
Si vous souhaitez télécharger des vidéos par programme, consultez l’ API de données YouTube pour PHP.