Всем привет!

Возникла необходимость показывать пользователю видео (наример из youtube) внутри 1С.
При реализации через iframe в ПолеHTMLДокумента видео добаляется, но при попытке вопспроизведения ничего не происходит (висит на бесконечной загрузке)

Подскажите, пожалуйста, какие еще есть варинты реализации? или мб как то можно победить и транслировать с youtube?

Заранее всем благодарен!
---
2 варианта решения:

1 вариант - опубликовать видео, например на IIS, чтобы оно было доступно по ссылкке вида - https://domain.com/test.mp4 и использовать эту ссылку в src в <video>

```1c
    <!DO CTYPE html>
    <ht ml>
    <head>
    <st yle type="text/css">
    </style>
    </head>
    <body>
    <video src = "https://domain.com/test.mp4" type="video/mp4" width="480" controls />
    </body>
    </html>
```

2 вариант, использовать JS, если, например, нужно стримить видео с гуглдрайв с авторизацией

```1c
    <ht ml>
    <body>
    <video width="480" controls
    <source id = "video" type="video/mp4" />
    </video>

    <sc ript>
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "https://www.googleapis.com/drive/v3/files/<id_video_googledrive>?alt=media");
    xhr.setRequestHeader("Authorization","Bearer <token>");

    xhr.responseType = 'blob';

    xhr.on load = function(e) {
    if (this.status == 200) {
    var blob = this.response;
    const video = document.getElementById("video");
    var reader = new FileReader();

    reader.readAsDataURL(blob); // конвертирует Blob в base64 и вызывает onload
    reader.on load = function() {
    video.src = reader.result;
    }
    }
    };

    xhr.send();
    </sc ript>
    </body>
    </html>
```
---
Видео с youtube и в браузере так может висеть на загрузке))
Тут так то не в 1С проблема может быть...
---
В браузере просматривается?
---
да, в браузере просматривается.
"бесконечная загрузка" висит только при вызвое из поля HTML из 1С
---
Если вы используете последнюю версию html5, вам следует использовать этот код. HTML5 может предложить несколько новых тегов, одним из которых является тег Video.

```1c
    <ht ml>
    <body>
    <video width=auto height=auto controls>
    <source src="https://www.youtube.com/embed/W7qWa52k-nE" type="video/mp4">
    </video>
    </body>
    </html>
```
---
у вас работает данный вариант?
у меня работает только когда в src передаешь двоичные данные, но видео слишком большие для этого варианта
когда в src передаешь ссылку на youtube, ситуация аналогичная, висит на бесконечной загрузке
---
висит на бесконечной загрузкеЯ ютуб не смотрю, т.к. он открывается, но видосы не кажет под моим ростелекомом. Мои полтора блогера на рутубе ща постят раньше, чем на ютубе. Одна только нехорошая там тема - нет воспроизведения видео в очереди. По крайней мере я не в курсе, как это сделать. А то я на ютубах раньше книжки слушал. Так добавишь в список воспроизведения пять книжек и идешь чай пить и конфеты есть. А ща приходится к компу возвращаться.
---
когда в src передаешь ссылку на youtube, ситуация аналогичная, висит на бесконечной загрузке ну поставь VPN, раз ты не в курсе того, что ютуб в россии работает только на мобилках.
---
не зависит от видеохостинга, например, с rutube аналогичная ситуация
---
2 варианта решения:

1 вариант - опубликовать видео, например на IIS, чтобы оно было доступно по ссылкке вида - https://domain.com/test.mp4 и использовать эту ссылку в src в <video>

```1c
    <!DO CTYPE html>
    <ht ml>
    <head>
    <st yle type="text/css">
    </style>
    </head>
    <body>
    <video src = "https://domain.com/test.mp4" type="video/mp4" width="480" controls />
    </body>
    </html>
```

2 вариант, использовать JS, если, например, нужно стримить видео с гуглдрайв с авторизацией

```1c
    <ht ml>
    <body>
    <video width="480" controls
    <source id = "video" type="video/mp4" />
    </video>

    <sc ript>
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "https://www.googleapis.com/drive/v3/files/<id_video_googledrive>?alt=media");
    xhr.setRequestHeader("Authorization","Bearer <token>");

    xhr.responseType = 'blob';

    xhr.on load = function(e) {
    if (this.status == 200) {
    var blob = this.response;
    const video = document.getElementById("video");
    var reader = new FileReader();

    reader.readAsDataURL(blob); // конвертирует Blob в base64 и вызывает onload
    reader.on load = function() {
    video.src = reader.result;
    }
    }
    };

    xhr.send();
    </sc ript>
    </body>
    </html>
```