#1 Gèrer les playlists Youtube

Closed
opened 6 months ago by rastapopoulos · 2 comments

Le lecteur à intégrer de Youtube sait parfaitement gérer les playlists, et dans ce cas, autour du bouton "play", ya des boutons précédent et suivant. Exemple :
https://www.fip.fr/jazz/kamasi-washington-terrace-martin-9th-wonder-et-robert-glasper-sortent-dinner-party-18208

Mais dans Seenthis, il ne détecte jamais la playlist, et il ne permet donc de lire que le seul morceau fourni, obligé d'aller chez Youtube pour avoir tout (et même pour le savoir si on n'a pas prévenu que c'était une playlist).
https://seenthis.net/messages/867846

Le lecteur à intégrer de Youtube sait parfaitement gérer les playlists, et dans ce cas, autour du bouton "play", ya des boutons précédent et suivant. Exemple : https://www.fip.fr/jazz/kamasi-washington-terrace-martin-9th-wonder-et-robert-glasper-sortent-dinner-party-18208 Mais dans Seenthis, il ne détecte jamais la playlist, et il ne permet donc de lire que le seul morceau fourni, obligé d'aller chez Youtube pour avoir tout (et même pour le savoir si on n'a pas prévenu que c'était une playlist). https://seenthis.net/messages/867846
b_b commented 2 months ago
Poster

Je m'y penche, et premier point un peu relou à prendre en compte, c'est que l'url de ton post n'est pas "vraiment" une url de playlist, mais celle d'une vidéo dans un playlist cf :

https://www.youtube.com/watch?list=PLgdR1ditFNmSFI-FV6mkkHRs2D_BThbd-&v=bVp4yL043Kc

VS

https://www.youtube.com/playlist?list=PLgdR1ditFNmSFI-FV6mkkHRs2D_BThbd-

Ensuite, la gestion des playlist est bien présente dans le code https://git.spip.net/spip-contrib-extensions/seenthis_autoembed/src/branch/master/stubs.php#L58 mais cette classe est tellement ancienne que ça ne peut plus fonctionner avec ces urls.

J'ai un patch qui permet d'afficher la playlist pour la seconde url, mais il reste un problème pour retrouver la vignette de celle-ci, et ça me semble bien relou sans passer par leur API.

diff --git a/stubs.php b/stubs.php
index b138cda..2ea212f 100755
--- a/stubs.php
+++ b/stubs.php
@@ -58,10 +58,11 @@ $AutoEmbed_stubs = array(
   array(
     'title' => 'YouTube (Playlists)',
     'website' => 'https://www.youtube.com',
-    'url-match' => 'http://(?:(?:www|au|br|ca|es|fr|de|hk|ie|in|il|it|jp|kr|mx|nl|nz|pl|ru|tw|uk)\.)?youtube\.com(?:[^"]*?)?(?:&|&|/|\?|;)(?:id=|p=|p/)([0-9a-f]{16})',
-    'embed-src' => 'https://www.youtube.com/p/$2&rel=0&fs=1',
+    'url-match' => 'http://(?:(?:www|au|br|ca|es|fr|de|hk|ie|in|il|it|jp|kr|mx|nl|nz|pl|ru|tw|uk)\.)?youtube\.com(?:[^"]*?)?(?:&|&|/|\?|;)(?:id=|p=|p/|list=)([0-9a-z-_]{12,})',
     'embed-width' => '480',
-    'embed-height' => '385',
+    'embed-height' => '270',
+    'image-src' => 'https://img.youtube.com/vi/$2/0.jpg',
+    'iframe-player' => 'https://www.youtube.com/embed/videoseries?list=$2&autoplay=1',
   ),
   array(
     'title' => 'Dailymotion',

PS j'ai trouvé cette ressource qui pourrait être utile https://gist.github.com/LinuxPanda/5959867

Je m'y penche, et premier point un peu relou à prendre en compte, c'est que l'url de ton post n'est pas "vraiment" une url de playlist, mais celle d'une vidéo dans un playlist cf : https://www.youtube.com/watch?list=PLgdR1ditFNmSFI-FV6mkkHRs2D_BThbd-&v=bVp4yL043Kc VS https://www.youtube.com/playlist?list=PLgdR1ditFNmSFI-FV6mkkHRs2D_BThbd- Ensuite, la gestion des playlist est bien présente dans le code https://git.spip.net/spip-contrib-extensions/seenthis_autoembed/src/branch/master/stubs.php#L58 mais cette classe est tellement ancienne que ça ne peut plus fonctionner avec ces urls. J'ai un patch qui permet d'afficher la playlist pour la seconde url, mais il reste un problème pour retrouver la vignette de celle-ci, et ça me semble bien relou sans passer par leur API. ``` diff diff --git a/stubs.php b/stubs.php index b138cda..2ea212f 100755 --- a/stubs.php +++ b/stubs.php @@ -58,10 +58,11 @@ $AutoEmbed_stubs = array( array( 'title' => 'YouTube (Playlists)', 'website' => 'https://www.youtube.com', - 'url-match' => 'http://(?:(?:www|au|br|ca|es|fr|de|hk|ie|in|il|it|jp|kr|mx|nl|nz|pl|ru|tw|uk)\.)?youtube\.com(?:[^"]*?)?(?:&|&|/|\?|;)(?:id=|p=|p/)([0-9a-f]{16})', - 'embed-src' => 'https://www.youtube.com/p/$2&rel=0&fs=1', + 'url-match' => 'http://(?:(?:www|au|br|ca|es|fr|de|hk|ie|in|il|it|jp|kr|mx|nl|nz|pl|ru|tw|uk)\.)?youtube\.com(?:[^"]*?)?(?:&|&|/|\?|;)(?:id=|p=|p/|list=)([0-9a-z-_]{12,})', 'embed-width' => '480', - 'embed-height' => '385', + 'embed-height' => '270', + 'image-src' => 'https://img.youtube.com/vi/$2/0.jpg', + 'iframe-player' => 'https://www.youtube.com/embed/videoseries?list=$2&autoplay=1', ), array( 'title' => 'Dailymotion', ``` PS j'ai trouvé cette ressource qui pourrait être utile https://gist.github.com/LinuxPanda/5959867
b_b closed this issue 2 months ago
Poster

merci ! <3

merci ! <3
Sign in to join this conversation.
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.