5

I'm using the YouTube iFrame API to embed YouTube videos on my site. The videos are pulled from Reddit data obtained via their API, so the content dynamically changes. Some of these videos load as "Video Unavailable".

My goal is to detect when this happens, and remove the unavailable video. However, I haven't found a way to detect this state.

What I've tried so far:

  1. Look in the iframe contents for items with a class of ytp-error. This does not work because all modern browsers prevent javascript from looking inside iframe contents.
  2. Adding an onError event listener to the player. This does not work because a video being unavailable apparently does not constitute an error in eyes of the player.

I assume there is some call that I can use to detect this in the player, but I have not found such as call. How can this be detected?

1

1 Answer 1

7

Thankfully, it doesn't require another call to the YT API. In the YouTube iFrame's onReady handler, getPlayerState() will return -1 (unstarted) for "unavailable" videos, while all other videos return a status of 5 (video cued). I can now simply remove all videos from the DOM which have this -1 status.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.