Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to embed a youtube playlist with a sidebar

I'm trying to embed a youtube playlist with a sidebar to my html page.

The playlist itself can be embedded by this html code:

<iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="1"/>

This displays the playlist, but without a sidebar. So I now want to add a sidebar next to the youtube playlist display.

So the final view should be something like this:

example yt sidebar

The sidebar items should be the thumbnail images of the next videos. You should be able to scroll/navigate to the next/previous videos in the playlist that aren't displayed. And when you click on the sidebar items the displayed video should be updated to the clicked video and the sidebar should updated to the next available videos.

On youtube playlist sidebars are displayed like this:

screen youtube with sidebar

So we would like an alteration of that sidebar with only the image thumbnails. So a 'cleaner' look of the youtube sidebar.

Note: The solution should only use html/css/javascript.

These 2 questions have asked the same, but these are from to long ago and both the iframe and plugin solution don't seem work anymore.:

  • Embed YouTube Playlist plugin with sidebar list visible

  • Embed youtube playlist with side list tray

Edit:

The example in the answer seems to be outdated, here a functional version. (Full credits to @Skyrocker of course)

like image 946
Daan Seuntjens Avatar asked Aug 12 '19 09:08

Daan Seuntjens


1 Answers

TL;DR: you'll have to use official Google Youtube API


Unfortunately it's impossible to use the same "easy" approach, like the one that you use with a iframe embedded Youtube. To be able to customize the look of the playlist you need to do a few preparation steps:

  1. Create a google developer account to receive the needful API.
  2. Create a project
  3. On the credentials page - on the tab OAuth consent screen fill the required fields and add your site domain into Authorized domains section (For testing purposes add a https://cdpn.io, but don't forget to replace it with your actual site domain later)
  4. Go again to the credentials page - create an API key, restrict it to use only the Youtube Data API (at the very bottom of the list)
  5. Go again to the credentials page - create an OAuth ClientId. For testing purposes add a https://cdpn.io domain to the Authorized JavaScript origins, but don't forget to replace it with your actual site domain later
  6. Enable the API Services for Youtube

Then, after doing all from this list, see the codepen example how to orchestrate this. A few requirements:

  • Fill API keys variables
  • The implementation, that built on the Google API, will require the confirmation from user to access the services. This is up to you to think of the flow when to initialize this confirmation pop.

Updates:

Indeed, you were right, those methods can be invoked without auth.

Here is your upgraded version of the list

like image 134
Skyrocker Avatar answered Sep 30 '22 18:09

Skyrocker