Youtube class
Door Cynthia Fridsma, 15 jaar geleden, 16.649x bekeken
Dit is een PHP class om youtube filmpjes op je site te kunnen tonen, door alleen de URL van de youtube video te gebruiken.
Gesponsorde koppelingen
PHP script bestanden
Er zijn 9 reacties op 'Youtube class'
Gesponsorde koppelingen
Hieronder zie je hoe je deze class kunt gebruiken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?PHP
include_once("youtube.php");
$video = new youtube;
$video->video = "http://www.youtube.com/watch?v=4tOZgRsd4NY&list=PL89F64888F166890D";
$video->width = "320";
$video->height="240";
// playlist
$youtube = $video->play_video();
echo $youtube . "<hr>";
// 1 video
$video->video="http://www.youtube.com/watch?v=uTA5bLxfvwo";
$youtube = $video->play_video();
echo $youtube;
// shared link
echo "<hr>";
$video->width = "420";
$video->height="315";
$video->video="http://youtu.be/VRl2XFJ_tg4";
$youtube = $video->play_video();
echo $youtube;
?>
include_once("youtube.php");
$video = new youtube;
$video->video = "http://www.youtube.com/watch?v=4tOZgRsd4NY&list=PL89F64888F166890D";
$video->width = "320";
$video->height="240";
// playlist
$youtube = $video->play_video();
echo $youtube . "<hr>";
// 1 video
$video->video="http://www.youtube.com/watch?v=uTA5bLxfvwo";
$youtube = $video->play_video();
echo $youtube;
// shared link
echo "<hr>";
$video->width = "420";
$video->height="315";
$video->video="http://youtu.be/VRl2XFJ_tg4";
$youtube = $video->play_video();
echo $youtube;
?>
phoƩ, we hebben 3 uur niet gereageerd!
Tevens:
- ik mis visibility keywords bij properties en methods
- nooit properties publiek maken
- getallen horen niet in quotes
- is het gebruik van parse_url niet een stukje makkelijker?
- verzin een betere methode van foutafhandeling, laat de gebruiker bepalen wat de user te zien krijgt.
- script volgens de PSR standaarden, dit betekend op zijn minst dat classnamen met een hoofdletter beginnen.
Tevens:
- ik mis visibility keywords bij properties en methods
- nooit properties publiek maken
- getallen horen niet in quotes
- is het gebruik van parse_url niet een stukje makkelijker?
- verzin een betere methode van foutafhandeling, laat de gebruiker bepalen wat de user te zien krijgt.
- script volgens de PSR standaarden, dit betekend op zijn minst dat classnamen met een hoofdletter beginnen.
Hoi Wouter,
Bedankt voor je sugesties. Ik heb het script aangepast.
De properties width en height zijn nu private en het script biedt nu de mogelijkheid om een zelf een foutmelding te genereren.
Verder heb ik gebruik gemaakt van parse_url, dank je voor de sugestie!, en de clasnaam heb ik nu met een hoofdletter staan.
Hieronder zie je hoe de verbeterde versie gebruikt kan worden :
echo "<hr>";
Bedankt voor je sugesties. Ik heb het script aangepast.
De properties width en height zijn nu private en het script biedt nu de mogelijkheid om een zelf een foutmelding te genereren.
Verder heb ik gebruik gemaakt van parse_url, dank je voor de sugestie!, en de clasnaam heb ik nu met een hoofdletter staan.
Hieronder zie je hoe de verbeterde versie gebruikt kan worden :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
include_once("youtube_adjusted.php");
$video = new YouTube(320,240);
$video->video = "http://www.youtube.com/playlist?list=PL6F5E9FD99326F98C";
// playlist
$youtube = $video->playVideo();
echo $youtube . "<hr>";
// 1 video
$video->video="http://www.youtube.com/watch?v=uTA5bLxfvwo";
$youtube = $video->playVideo();
echo $youtube;
// shared link
echo "<hr>";
$video = new YouTube(420,315);
$video->video="http://youtu.be/VRl2XFJ_tg4";
$youtube = $video->playVideo();
echo $youtube;
// ongeldig verzoek
$video->video = "http://wrongvideo.com?nothere";
// geef een eigen foutmelding mee...
$video->error ="<br>Opgevraagde video niet gevonden :-)<br>" ;
$youtube = $video->playVideo();
echo $youtube;
?>
include_once("youtube_adjusted.php");
$video = new YouTube(320,240);
$video->video = "http://www.youtube.com/playlist?list=PL6F5E9FD99326F98C";
// playlist
$youtube = $video->playVideo();
echo $youtube . "<hr>";
// 1 video
$video->video="http://www.youtube.com/watch?v=uTA5bLxfvwo";
$youtube = $video->playVideo();
echo $youtube;
// shared link
echo "<hr>";
$video = new YouTube(420,315);
$video->video="http://youtu.be/VRl2XFJ_tg4";
$youtube = $video->playVideo();
echo $youtube;
// ongeldig verzoek
$video->video = "http://wrongvideo.com?nothere";
// geef een eigen foutmelding mee...
$video->error ="<br>Opgevraagde video niet gevonden :-)<br>" ;
$youtube = $video->playVideo();
echo $youtube;
?>
echo "<hr>";
Cynthia,
Leuk stukje script alleen heb ik er een aantal opmerkingen op.
1. De benamingen van je functies en variabele zijn niet heel duidelijk. Ik zie namelijk allemaal variabele met de naam "test". Dit maakt niet echt duidelijk wat je erin opslaat. Je functie heet "playVideo", als ik dit letterlijk zou nemen zou ik denken dat er een video word afgespeeld. Maar je stuurt eigenlijk alleen maar een stuk html terug.
2. Maak gebruik van setters en getters. bijv. $video->setVideo(); en $video->getHtml();. Je weet dan direct wat de functie doet. Dan hou je het voor jezelf ook wat overzichtelijker.
3. Je maakt nu 2 verschillende iframes hebben. Als ik het goed heb een normale video en een playlist. Maar als je kijkt naar de parameters die je mee kunt sturen zijn dit er veel meer: https://developers.google.com/youtube/player_parameters#Parameters
4. Zoals wouter al aangaf maak je foutafhandeling beter. Wat je hiervoor kunt gebruiken zijn Exceptions. http://php.net/exceptions
Hoop dat je hier iets aan hebt.
Leuk stukje script alleen heb ik er een aantal opmerkingen op.
1. De benamingen van je functies en variabele zijn niet heel duidelijk. Ik zie namelijk allemaal variabele met de naam "test". Dit maakt niet echt duidelijk wat je erin opslaat. Je functie heet "playVideo", als ik dit letterlijk zou nemen zou ik denken dat er een video word afgespeeld. Maar je stuurt eigenlijk alleen maar een stuk html terug.
2. Maak gebruik van setters en getters. bijv. $video->setVideo(); en $video->getHtml();. Je weet dan direct wat de functie doet. Dan hou je het voor jezelf ook wat overzichtelijker.
3. Je maakt nu 2 verschillende iframes hebben. Als ik het goed heb een normale video en een playlist. Maar als je kijkt naar de parameters die je mee kunt sturen zijn dit er veel meer: https://developers.google.com/youtube/player_parameters#Parameters
4. Zoals wouter al aangaf maak je foutafhandeling beter. Wat je hiervoor kunt gebruiken zijn Exceptions. http://php.net/exceptions
Hoop dat je hier iets aan hebt.
Hoi Rick,
Dank je voor je suggesties ;-).
1. Ik zal de variabel $test veranderen in iets wat meer duidelijkheid verschaft. En inderdaad, er wordt alleen een stuk HTML terug gestuurd, de ingesloten code die je van een Youtube pagina kunt krijgen.
2. Dat is een hele goede suggestie. Ik heb er zelf nooit bij stilgestaan om op die manier met setters en getters te werken. Dat maakt het ook voor de eindgebruiker een stuk overzichtelijker....
3. Klopt, ik had bewust alleen gekeken naar Playlist of een enkele video. Het script kan natuurlijk uitgebreid worden, maar dat had ik nog niet gedaan...
4. Eigenlijk weet ik niet goed wat ik met exceptions aan moet, de video's staan immers op Youtube en niet op een eigen site...
Maar ik zal kijken welke foutmeldingen Youtube gebruikt en deze in een exception verwerken...
P.s. ik ben zo vrij geweest om nog een kleine aanvulling te maken zodat je ook een Youtube channel op je scherm kunt krijgen en deze binnen je site kan bekijken.
Een demo hiervan kan je bekijken op http://www.heathernova.us/youtube.php
De aanvulling op de youtube class zal ik ook hier publiceren ;-)
Dank je voor je suggesties ;-).
1. Ik zal de variabel $test veranderen in iets wat meer duidelijkheid verschaft. En inderdaad, er wordt alleen een stuk HTML terug gestuurd, de ingesloten code die je van een Youtube pagina kunt krijgen.
2. Dat is een hele goede suggestie. Ik heb er zelf nooit bij stilgestaan om op die manier met setters en getters te werken. Dat maakt het ook voor de eindgebruiker een stuk overzichtelijker....
3. Klopt, ik had bewust alleen gekeken naar Playlist of een enkele video. Het script kan natuurlijk uitgebreid worden, maar dat had ik nog niet gedaan...
4. Eigenlijk weet ik niet goed wat ik met exceptions aan moet, de video's staan immers op Youtube en niet op een eigen site...
Maar ik zal kijken welke foutmeldingen Youtube gebruikt en deze in een exception verwerken...
P.s. ik ben zo vrij geweest om nog een kleine aanvulling te maken zodat je ook een Youtube channel op je scherm kunt krijgen en deze binnen je site kan bekijken.
Een demo hiervan kan je bekijken op http://www.heathernova.us/youtube.php
De aanvulling op de youtube class zal ik ook hier publiceren ;-)
Ik heb een extra aanvulling gemaakt voor de youtube class, namelijk youtube_channel.php.
Deze kun je als volgt gebruiken:
p.s. de variable $article staat vermeld omdat het CMS van deze variabel gebruikt maakt.
Demo pagina :
http://www.heathernova.us/youtube.php
Deze kun je als volgt gebruiken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
include_once("youtube_channel.php");
// naam van je huidige script, welke als referentie punt wordt gebruikt.
$PHPdocument = $_SERVER['SCRIPT_NAME'];
$video = new YouTubeChannel($PHPdocument);
// Youtube URL: (dit kan natuurlijk ook gewoon je user channel zijn).
$video->channel="http://www.youtube.com/results?search_query=heather+nova";
if(!empty($_GET['video'])){
?>
<form>
<input type="button" value="Previous page" onClick="javascript: history.go(-1)">
</form>
<?php
// bekijk een losse video
$video->video="www.youtube.com/watch?v=" . $_GET['video'];
$article= $video->playVideo();
}
if(!empty($_GET['list']) && (empty($_GET['video']))){
?>
<form>
<input type="button" value="Previous page" onClick="javascript: history.go(-1)">
</form>
<?php
// bekijk een speellijst
$video->video="http://www.youtube.com/playlist?list=" . $_GET['list'];
$article= $video->playVideo();
}
if(empty($_GET['list']) && (empty($_GET['video']))){
$article = $video->myChannel();
}
echo $article;
?>
include_once("youtube_channel.php");
// naam van je huidige script, welke als referentie punt wordt gebruikt.
$PHPdocument = $_SERVER['SCRIPT_NAME'];
$video = new YouTubeChannel($PHPdocument);
// Youtube URL: (dit kan natuurlijk ook gewoon je user channel zijn).
$video->channel="http://www.youtube.com/results?search_query=heather+nova";
if(!empty($_GET['video'])){
?>
<form>
<input type="button" value="Previous page" onClick="javascript: history.go(-1)">
</form>
<?php
// bekijk een losse video
$video->video="www.youtube.com/watch?v=" . $_GET['video'];
$article= $video->playVideo();
}
if(!empty($_GET['list']) && (empty($_GET['video']))){
?>
<form>
<input type="button" value="Previous page" onClick="javascript: history.go(-1)">
</form>
<?php
// bekijk een speellijst
$video->video="http://www.youtube.com/playlist?list=" . $_GET['list'];
$article= $video->playVideo();
}
if(empty($_GET['list']) && (empty($_GET['video']))){
$article = $video->myChannel();
}
echo $article;
?>
p.s. de variable $article staat vermeld omdat het CMS van deze variabel gebruikt maakt.
Demo pagina :
http://www.heathernova.us/youtube.php
Hoi Lano,
De Heather Nova site heeft geen malware, je kunt dit online checken via URL http://sitecheck.sucuri.net/results/www.heathernova.us/youtube.php
Je virusscanner geeft een false positive...
Het script youtube_channel.php maakt gebruik van de CURL library en van youtube.com
Dankzij het script kan een youtube pagina rechtstreeks op je eigen pagina worden getoond, zonder gebruik te maken van een IFrame.
De inhoudt van de youtube pagina wordt in een variabel gestopt en deze wordt vervolgens op de web pagina getoond.
Meer info over CURL:
http://en.wikipedia.org/wiki/CURL
De Heather Nova site heeft geen malware, je kunt dit online checken via URL http://sitecheck.sucuri.net/results/www.heathernova.us/youtube.php
Je virusscanner geeft een false positive...
Het script youtube_channel.php maakt gebruik van de CURL library en van youtube.com
Dankzij het script kan een youtube pagina rechtstreeks op je eigen pagina worden getoond, zonder gebruik te maken van een IFrame.
De inhoudt van de youtube pagina wordt in een variabel gestopt en deze wordt vervolgens op de web pagina getoond.
Meer info over CURL:
http://en.wikipedia.org/wiki/CURL
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu