Paused/finished YouTube videos automatically start playing when scrolling up far enough to load new posts

If a YouTube video in a post is paused or finished playing and you scroll up or down the page enough to load new posts, the aforementioned video will start playing automatically. I’ve successfully recreated this issue on Windows 7 in Chrome version 56.0.2924.87 in this thread: Post your favorite video game glitches - #74 by jacknife - General Game Discussion - Let's Play Zone

  1. Load the post in the page above
  2. Play one or all of the videos in the post
  3. Pause them at any point
  4. Scroll up the page until the browser loads in new comments
  5. The videos will autoplay without any interaction

Here’s a thread about it on my forum if it’s of any help: Embedded Youtube Video Replaying - Site Feedback - Let's Play Zone

6 лайков

Possibly related to this bugfix:

2 лайка

From what I can see on the linked topic it appears the issue is still happening @eviltrout

2 лайка

I have spent a lot of time this afternoon on this issue and I feel like this issue might not be fixable unless someone else has a brilliant idea.

The problem is in the virtual DOM with prepending (scrolling up). In this case, you are adding a bunch of elements (posts) to the beginning of an array. When the virtual DOM does its diff, it notices the element with the youtube <iframe> is not in the same place, so it removes and re-adds it later. This causes the youtube player to refresh the iframe, which causes it to play again.

It seems impossible to move an <iframe> in the DOM without reloading it.

Note that this bug doesn’t happen when scrolling down because appending posts doesn’t change the order. It also doesn’t matter if the user hasn’t started the video already, because lazyYT hasn’t inserted the iframe yet.

4 лайка

So this does not happen in the scrolling down scenario?

No it doesn’t happen when scrolling down.

I have edited the topic to make this more clear.

A similar bug happens if you don’t stop the video. When you scrolling up the page, the video stops and after few seconds restart from the beginning.

I wonder if @Osama could take a look at this? It is annoying, and easy to repro.

3 лайка

OK our debugging shows that for some reason the Youtube embedded player did fix the autoplay thing, so I am fixing the title here.

The bug we have is that we have “protection” in place when you click play that tells the “post cloaker”, hi … don’t cloak me. But this protection is somehow binned when you scroll up.

This means that if you play a song on youtube and scroll up it will just stop playing when we load the next chunk.

1 лайк

It’s also the opposite, if you stopped it playing, it will now restart… by itself.

This has been assigned both to @eviltrout and @Osama over the years, we have invested lots of time here and simply can not come up with a fix.

I am tagging this pr-welcome … but keep in mind … difficulty level on this is somewhere around 11.

image

13 лайков

Извините, что оживляю эту тему, но я заметил, что проблема теперь возникает даже при прокрутке вниз. Неясно, усугубился ли этот баг недавно или это совершенно другая ошибка. Это подтвердили несколько человек в нашем инстансе. Из-за этого обсуждения с видео становятся невыносимыми, когда предыдущие видео начинают внезапно воспроизводиться.

Поддерживаю, это происходит как при прокрутке вверх, так и вниз, и случайно воспроизводит все ранее просмотренные видео (думаю, это связано с тем, как Discourse обрабатывает предыдущий контент при загрузке нового в теме, но честно говоря, не знаю).

У меня по этому поводу смешанные чувства. Не думаю, что люди должны ожидать, что видео из поста, находящегося на 600+ позиций выше, будет продолжать воспроизводиться, когда вы бесконечно прокручиваете мега-тему вниз. Видео не видно, и если вы прокручиваете вниз, оно уже давно не было видно.

Например, если вы хотите долго слушать аудио, пока просматриваете сайт, откройте его в новой вкладке?

На мой взгляд, так быть не должно. Если видео поставлено на паузу или завершено, оно не должно воспроизводиться заново только из-за того, что вы прокрутили страницу вниз. (Именно это поведение и описано, хотя заголовок вводит в заблуждение.)

Кстати, существует альтернатива для тех, кто хочет, чтобы воспроизведение продолжалось при прокрутке, если им кажется, что подход с вкладками избыточен.

1 лайк

Так выглядит лучше?

Это всё ещё происходит в стабильной версии 3.0. Забавно, что одно видео обновляется при прокрутке вверх, а при прокрутке вниз остаётся на паузе; другое случайное видео ведёт себя наоборот: остаётся на паузе при прокрутке вверх и обновляется с воспроизведением при прокрутке вниз.

Очень раздражает.

Мы пока не внедрили никаких изменений здесь.

Наш план — перестроить представление темы в течение следующего года или двух, что, как мы надеемся, улучшит ситуацию. Простого решения здесь нет, мы уже пробовали.

2 лайка