Встраивание переработанных тем Reddit с видео

Как мы можем встраивать видео с Reddit в наши посты? Например, этот пост:

Ссылка здесь

Имеет код встраивания, похожий на этот:

<blockquote class="reddit-card" data-card-created="1588774544"><a href="https://www.reddit.com/r/VALORANT/comments/gdyrsg/i_also_decided_to_edit_at_2am/">Я тоже решил редактировать в 2 часа ночи</a> от <a href="http://www.reddit.com/r/VALORANT">r/VALORANT</a></blockquote>
<script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script>

Как насчёт этого?

  https://www.reddit.com/r/VALORANT/comments/gdyrsg/i_also_decided_to_edit_at_2am/

Что делает следующее:

Ох. Это не подходит. Вы хотите, чтобы видео воспроизводилось в Discourse, а не перекидывало вас на Reddit.

1 лайк

Спасибо.
Да, мы хотим, если возможно, воспроизводить его прямо там, как на YouTube и Vimeo.

Ха-ха, вы двое этого хотите, но задумывались ли вы о том, чего хочет Reddit?

Поскольку они полностью изменили свою философию и запустили v.redd.it, теперь всё не так, как раньше.

Все теги OpenGraph и Twitter Card предоставляют нам статичное изображение. Reddit чётко указывает, что можно встраивать только статичное изображение.

Если вы копнете глубже, то обнаружите, что видео находится в контейнере DASH, то есть аудио и видео — это отдельные файлы. Чтобы заставить это воспроизводиться в Discourse, потребуется, как минимум, использовать собственный JS-видеоплеер.

1 лайк

На самом деле Reddit это позволяет:

При нажатии на кнопку «Встроить» появляется следующее:

Моя проблема в том, как разрешить отображение этого в моём посте на моём сайте Discourse.

Я попробовал поделиться через old.reddit, и это тоже просто изображение. Это новый интерфейс Reddit?

Да, это новый.

1 лайк

Кажется, они передают это на аутсорсинг в embed.ly.

Разобравшись, выяснилось, что с помощью ID поста всё же можно создать рабочий iFrame.

Если @techAPJ не хочет взяться за это, я считаю, что pr-welcome

<iframe src="https://old.reddit.com/mediaembed/gdyrsg" width="690" height="388">

[РАБОЧИЙ IFRAME, КОТОРЫЙ АВТОМАТИЧЕСКИ ВОСПРОИЗВОДИТ ВИДЕО]

2 лайка

@Falco, можем ли мы придумать вариант, при котором видео не будет воспроизводиться автоматически?

Редактирование: Если принудительно добавить allow="autoplay 'none'" к элементу iframe в HTML-санитайзере, это может решить проблему (только в новых браузерах).

Также не работают ни одна из кнопок на плеере (например, пауза, полноэкранный режим и т.д.)

Кто готов взяться за этот PR? :thinking:

Если вы нажмёте кнопку «Поделиться» > «Встроить» на этом примере URL, а затем скопируете этот код:

<iframe id="reddit-embed" 
src="https://www.redditmedia.com/r/timelapse/comments/w2al1z/amazing_timelapse_of_summertime_storms_in_florida/?ref_source=embed&amp;ref=share&amp;embed=true" 
sandbox="allow-scripts allow-same-origin allow-popups" 
style="border: none;" scrolling="no" 
width="640" height="419">
</iframe>

Видео встраивается и воспроизводится в окне редактора:

Но после отправки поста видео исчезает.

Добавление allow="autoplay 'none'" в конец элемента iframe позволяет видео появиться, и оно воспроизводится корректно со всеми элементами управления встраивания (пауза, воспроизведение и т.д.):

<iframe id="reddit-embed" 
src="https://www.redditmedia.com/r/timelapse/comments/w2al1z/amazing_timelapse_of_summertime_storms_in_florida/?ref_source=embed&amp;ref=share&amp;embed=true" 
sandbox="allow-scripts allow-same-origin allow-popups" 
style="border: none;" scrolling="no" 
width="640" height="419" 
allow="autoplay 'none'">
</iframe>

Как здесь: