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

I'm using the YouTube iFrame API to embed YouTube videos on my site.The videos are pulled from R

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.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745416304a4626763.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信