Ага, проблема найдена:
Суть в том, что когда вы вставляете обычный код iframe, вы можете обойти механизм onebox. В этом случае результирующий код iframe не будет содержать атрибут data-original-href, который используется в шаблоне письма.
Когда атрибут data-original-href отсутствует, Discourse пытается угадать видео, беря всё, что идёт после последнего /. Очевидно, что это не работает для видео с ограниченным доступом (unlisted video).
Например, если вы откроете инструменты разработчика (Inspect Element) в браузере, то увидите, что результирующий iframe при использовании обычного кода выглядит так:
<iframe src="https://player.vimeo.com/video/508864124?h=fcbbcc92fa" width="640" height="360" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen ></iframe>
<iframe src="https://player.vimeo.com/video/508864124?h=fcbbcc92fa" width="640" height="360" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen=""></iframe>
В то время как при вставке только URL, то есть когда Discourse сам преобразует его в iframe:
https://vimeo.com/508864124/fcbbcc92fa.
<iframe class="vimeo-onebox" src="https://player.vimeo.com/video/508864124?h=fcbbcc92fa&app_id=122963" data-original-href="https://vimeo.com/508864124/fcbbcc92fa" frameborder="0" allowfullscreen="" seamless="seamless" sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation"></iframe>
Обратите внимание на дополнительный атрибут data-original-href="https://vimeo.com/508864124/fcbbcc92fa" во втором варианте. Можно подумать, что если добавить этот атрибут при использовании обычного iframe, то всё заработает, но, скорее всего, нет, потому что Discourse не позволяет добавлять произвольные атрибуты.