最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Detect via javascript if video is unavailable when using YouTube iframe player - Stack Overflow

programmeradmin1浏览0评论

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?

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?

Share Improve this question edited Oct 27, 2021 at 18:48 Haydentech asked Oct 19, 2021 at 14:32 HaydentechHaydentech 1,2343 gold badges12 silver badges30 bronze badges 1
  • Check the answers in this question. – Marco Aurelio Fernandez Reyes Commented Oct 26, 2021 at 17:40
Add a ment  | 

1 Answer 1

Reset to default 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.

发布评论

评论列表(0)

  1. 暂无评论