Playlist youtube en speler (met verbod op console)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans De Ridder

Hans De Ridder

26/01/2018 16:20:06
Quote Anchor link
Leden kunnen op de site een grote playlist maken van youtubes.
Dat hoeven geen eigen video's te zijn van de youtubeaccount.
Men kan dus via kopieren en plakken uit de browser, youtubes in lijst brengen.
Ik zorg er dan voor dat de Video ID's worden opgeslagen.
Als ik afspeel via een embedded speler dan krijg ik de volgende melding.
Veroorzaakt door mijn Addblocker.

Failed to load https://googleads.g.doubleclick.net/pagead/id?exp=nomnom: Redirect from 'https://googleads.g.doubleclick.net/pagead/id?exp=nomnom' to 'data:text;charset=utf-8,' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.youtube.com' is therefore not allowed access.

Terwijl speler wel gewoon werkt.
Daarnaast is het de bedoeling dat ik de tijd achterhaal van een youtube:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
//$url = '//www.youtube.com/watch?v=PU5xxh5UX4U'; //werkt wel, maar geen tijd.

$url = '//www.youtube.com/watch?v=TW2ST72xS6c'; // werkt wel met tijd.

$data = json_decode(file_get_contents('http://api.rest7.com/v1/youtube_info.php?url=' . $url));

if (@$data->success !== 1)
{

    die('Failed');
}

//echo 'Video ID=' . $data->id . '<br>';
echo 'Title=' . $data->title . '<br>';
echo 'Duration sec=' . $data->duration. '<br>';
//echo 'Thumbnail 1 URL=' . $data->thumb1_url . '<br>';
//rest of the thumbnails:

echo '<pre>';
print_r($data);

    preg_match('/[\\?\\&]v=([^\\?\\&]+)/', $url, $matches);
    $id = $matches[1];
    $width = '800px';
    $height = '450px';
?>

<html>
<body>
<iframe id="ytplayer" type="text/html" width="<?php echo $width ?>" height="<?php echo $height ?>"
    src="https://www.youtube.com/embed/<?php echo $id ?>?rel=0&showinfo=0&color=white&iv_load_policy=3"
    frameborder="0" allowfullscreen></iframe>
</body>
</html>


Die tijd is relevant om van video te wisselen.
Maar werkt niet.
 
PHP hulp

PHP hulp

26/04/2024 18:05:03
 
Thomas van den Heuvel

Thomas van den Heuvel

26/01/2018 17:01:23
Quote Anchor link
"werkt niet" - kun je hier wat over uitweiden?

overigens lijkt mij http://api.rest7.com/v1/youtube_info.php geen officiële YouTube API. In deze link wordt alle metadata opgehoest bij een specifieke video, waaronder de duur (ContentDetails.duration).

Via een list-call kun je informatie van specifieke video's opvragen.

Om van de YouTube API gebruik te maken heb je wel een API-key nodig uiteraard.
 
Hans De Ridder

Hans De Ridder

26/01/2018 18:04:53
Quote Anchor link
In het script heb ik bovenaan // gezet omdat die link geen tijd aangeeft.
Ook bij andere video's geprobeerd.
Alleen de link die ik aangaf werkt met de tijd.

Het script komt van:
http://rest7.com/youtube_info
en zij zitten op Github.
Op die site werken andere youtubes ook niet met de tijd.

Ik ben nu de Youtube API aan het doorworstelen.
Ik zag in de demonstratievideo wel een link met 1 video ID.
Voor speellijsten werken ze met de echte youtube playlist.
Maar misschien biedt dat nog soelaas.

een Api key heb ik wel voor andere doeleinden.
 
- Ariën  -
Beheerder

- Ariën -

26/01/2018 18:23:26
Quote Anchor link
Ik snap er nog steeds vrij weinig van wat je nou wilt zeggen met die playlist van YouTube.
Je wilt de afspeelduur uit de video halen.

Dan moet je Thomas zijn linkje even bekijken.
 
Hans De Ridder

Hans De Ridder

27/01/2018 01:00:17
Quote Anchor link
Ik heb alles bekeken.
Bedankt voor het meedenken en de linkjes.
Ariën, als je account op youtube hebt, dan kun je daar afspeellijsten maken
volgens het Youtube protocol.
Daar is de Api ook grotendeels op gebaseerd.
Ik gebruik de youtubes van anderen dan van mezelf.
Bijv. een verzameling van Elvis.

https://www.pctraverse.nl/elvis.html

En de oplossing is eigenlijk heel eenvoudig.
Bij de video's die niet getoond worden, wordt een volledig beeld geëist.
De meldingen in de console hebben inderdaad betrekking op mijn addblocker.
Op browser zonder addblocker komt wel de reclame in de video.
Maar dat installeren mensen zelf.

Hier het scriptje om met mijn video ID's alles af te spelen in volledig scherm.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type = "text/javascript">
$(function(){
  $('#video').css({ width: $(window).innerWidth() + 'px', height: $(window).innerHeight() + 'px' });

  $(window).resize(function(){
    $('#video').css({ width: $(window).innerWidth() + 'px', height: $(window).innerHeight() + 'px' });
  });
});
</script>
</head>
<body>
<iframe id="video" src="https://www.youtube.com/embed/VIDEO_ID?playlist=PU5xxh5UX4U,Yf2KtxEtsEM,e8jAqvmnsIk,SBmAPYkPeYU,BeTurYZuY4A" frameborder="0" allowfullscreen></iframe>
</body>
</html>
Gewijzigd op 27/01/2018 01:03:58 door Hans De Ridder
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.