Загрузить видео
Загрузить одно видео
-
Откройте главную страницу
Cloud Video. -
Выберите канал.
-
На вкладке
Видео нажмите кнопку Загрузить видео. -
На странице загрузки нажмите кнопку Выбрать файл и выберите видео, которое вы хотите загрузить.
Поддерживается загрузка видео в различных форматах, например: MP4
, AVI , MKV , FLV , MOV , WebM и других.В сервисе действуют ограничения на разрешение публикуемых видео.
Дождитесь окончания загрузки файла.
-
Введите Название видео. Название будет отображаться на всех ресурсах, где будет размещено видео.
-
(Опционально) В поле Описание укажите таймкоды к видео в формате:
00:00:00 Название главы 1 hh:mm:ss Название главы 2 ...
Примечание
Таймкоды должны начинаться с
00:00
или00:00:00
. Время от названия главы отделяется пробелом. Каждый таймкод начинается с новой строки. -
В списке Доступ выберите тип доступа к видео:
-
По временной ссылке — видео будет доступно по специальной ссылке.
Видео по временной ссылке доступно не более 12 часов.
-
Для всех пользователей — видео доступно неограниченное время и всем, у кого есть ссылка на видео.
-
-
(Опционально) Чтобы добавить обложку для видео, в поле Обложка нажмите кнопку
Выберите файл и выберите изображение для обложки.Поддерживаются обложки в следующих форматах: JPG
, PNG и GIF . -
(Опционально) Чтобы добавить субтитры для видео, в поле Субтитры нажмите кнопку Добавить:
-
В открывшемся окне выберите язык субтитров.
-
Нажмите кнопку Выбрать файл и выберите файл субтитров.
-
Нажмите кнопку Создать.
Дождитесь загрузки файла.
-
-
Нажмите кнопку Сохранить.
Откроется страница управления созданным видео. После завершения обработки видео станет доступно для просмотра.
Чтобы проверить доступность видео:
- В блоке Код вставки выберите вкладку
link
. - Нажмите кнопку
Скопировать. - Откройте новую страницу браузера и вставьте в адресной строке полученную ссылку.
- Нажмите кнопку воспроизведения.
Чтобы создать видео в Cloud Video с помощью API, зарегистрируйте видео на канале и затем загрузите в него видеофайл по протоколу tus
-
Зарегистрируйте видео на канале:
curl \ --request POST \ --url 'https://video.api.cloud.yandex.net/video/v1/videos' \ --header 'Authorization: Bearer <IAM-токен>' \ --header 'Content-Type: application/json' \ --data '{ "channel_id": "<идентификатор_канала>", "title": "<имя_видео>", "tusd": { "file_size": <размер_видеофайла>, "file_name": "<имя_видеофайла>" }, "public_access": {} }'
Где:
<IAM-токен>
— IAM-токен, необходимый для аутентификации в Cloud Video API.<идентификатор_канала>
— идентификатор канала, в котором вы хотите создать ваше видео.<имя_видео>
— имя, которое будет присвоено видео при загрузке в канал.<размер_видеофайла>
— полученный размер загружаемого видеофайла в байтах.<имя_видеофайла>
— имя видеофайла, который вы хотите загрузить.- Тип доступа к видео:
-
public_access
— неограниченное время и всем, у кого есть ссылка на видео. -
signUrlAccess
— по временной ссылке.Видео по временной ссылке доступно не более 12 часов.
-
Результат:
{ "done": true, "metadata": { "@type": "type.googleapis.com/yandex.cloud.video.v1.CreateVideoMetadata", "videoId": "vplvh4wvqimx********" }, "response": { "@type": "type.googleapis.com/yandex.cloud.video.v1.Video", "tusd": { "url": "https://tusd.video.cloud.yandex.net/files/75925d89ddc05c0d5ca3282781f13c6f+00062241********" }, "publicAccess": {}, "id": "vplvh4wvqimx********", "channelId": "vplcdyphvqik********", "title": "my-very-first-video", "status": "WAIT_UPLOADING", "visibilityStatus": "PUBLISHED", "createdAt": "2024-09-16T19:18:08.384540Z", "updatedAt": "2024-09-16T19:18:08.384540Z" }, "id": "vplpjlgda3c2********", "description": "Video create", "createdAt": "2024-09-16T19:18:08.393546Z", "createdBy": "ajeol2afu1js********", "modifiedAt": "2024-09-16T19:18:08.393546Z" }
Сохраните ссылку на загрузку видео (значение поля
url
) и идентификатор видео (значение поляvideoId
) — они понадобятся позднее. -
Загрузите видеофайл:
curl \ --location \ --request PATCH '<ссылка_на_загрузку_видео>' \ --header 'Content-Type: application/offset+octet-stream' \ --header 'Upload-Offset: 0' \ --header 'Tus-Resumable: 1.0.0' \ --data-binary '@<путь_к_видеофайлу>'
Где:
-
<ссылка_на_загрузку_видео>
— сохраненная ранее ссылка на загрузку, полученная при создании видео. -
<путь_к_видеофайлу>
— полный путь к файлу с видео, предваряемый символом@
.Например:
@/Users/myuser/Downloads/sample-video.MOV
.Не используйте в пути к файлу сокращения, в т.ч. тильду
~
.
-
-
Убедитесь, что видеофайл загрузился полностью, указав сохраненный ранее идентификатор видео:
curl \ --request GET \ --url 'https://video.api.cloud.yandex.net/video/v1/videos/<идентификатор_видео>' \ --header 'Authorization: Bearer <IAM-токен>'
Результат:
{ "tusd": { "url": "https://tusd.video.cloud.yandex.net/files/75925d89ddc05c0d5ca3282781f13c6f+00062241********" }, "publicAccess": {}, "id": "vplvh4wvqimx********", "channelId": "vplcdyphvqik********", "title": "my-very-first-video", "status": "READY", "duration": "39.981s", "visibilityStatus": "PUBLISHED", "createdAt": "2024-09-16T19:18:08.384540Z", "updatedAt": "2024-09-16T19:31:31.471857Z" }
Если поле
status
имеет значениеPROCESSING
илиREADY
, значит видеофайл загрузился полностью. -
Если поле
status
имеет значениеWAIT_UPLOADING
, значит загрузка видеофайла была прервана. В этом случае видео требуется дозагрузить. Для этого необходимо знать позициюoffset
, на которой была прервана предыдущая попытка загрузки:-
Узнайте позицию
offset
прерванной загрузки, указав сохраненную ранее ссылку на загрузку видео:curl \ --head '<ссылка_на_загрузку_видео>' \ --header 'Host: tusd.video.cloud.yandex.net' \ --header 'Tus-Resumable: 1.0.0'
Результат:
HTTP/1.1 200 OK Server: nginx/1.18.0 Date: Mon, 16 Sep 2024 15:21:52 GMT Connection: keep-alive Cache-Control: no-cache Tus-Resumable: 1.0.0 Upload-Length: 100100627 Upload-Metadata: filename c2FtcGxlLXZpZGVv********,video_id dnBsdjVpeWh2M2F6ZnYz******** Upload-Offset: 28231123 X-Content-Type-Options: nosniff X-Request-Id: 3b775c2a******** X-Trace-Id: 95ab2f994557ce1b1ee9dd09******** X_h: edge-5b647c8d67-***** Access-Control-Allow-Origin: * Access-Control-Allow-Headers: * Access-Control-Expose-Headers: * Expires: Thu, 01 Jan 1970 00:00:01 GMT
Сохраните значение поля
Upload-Offset
— оно потребуется при дозагрузке видеофайла. -
Дозагрузите видеофайл, выполнив команду:
curl \ --location \ --request PATCH '<ссылка_на_загрузку_видео>' \ --header 'Content-Type: application/offset+octet-stream' \ --header 'Upload-Offset: <значение_offset>' \ --header 'Tus-Resumable: 1.0.0' \ --data-binary '@<путь_к_видеофайлу>'
Где:
-
<ссылка_на_загрузку_видео>
— сохраненная ранее ссылка на загрузку, полученная при создании видео. -
<значение_offset>
— сохраненное ранее значениеoffset
— позиции в файле, на которой прервалась предыдущая попытка загрузки. -
<путь_к_видеофайлу>
— полный путь к файлу с видео, предваряемый символом@
.Например:
@/Users/myuser/Downloads/sample-video.MOV
.Не используйте в пути к файлу сокращения, в т.ч. тильду
~
.
-
Повторно убедитесь, что видеофайл загрузился полностью. Если загрузка вновь была прервана, повторите действия, описанные в текущем шаге.
-
Чтобы создать видео в Cloud Video с помощью API, зарегистрируйте видео на канале и затем загрузите в него видеофайл по протоколу tus
-
Зарегистрируйте видео на канале:
grpcurl \ -rpc-header "Authorization: Bearer <IAM-токен>" \ -d '{ "channel_id": "<идентификатор_канала>", "title": "<имя_видео>", "tusd": { "file_size": <размер_видеофайла>, "file_name": "<имя_видеофайла>" }, "public_access": {} }' \ video.api.cloud.yandex.net:443 yandex.cloud.video.v1.VideoService/Create
Где:
<IAM-токен>
— IAM-токен, необходимый для аутентификации в Cloud Video API.<идентификатор_канала>
— идентификатор канала, в котором вы хотите создать ваше видео.<имя_видео>
— имя, которое будет присвоено видео при загрузке в канал.<размер_видеофайла>
— полученный размер загружаемого видеофайла в байтах.<имя_видеофайла>
— имя видеофайла, который вы хотите загрузить.- Тип доступа к видео:
-
public_access
— неограниченное время и всем, у кого есть ссылка на видео. -
signUrlAccess
— по временной ссылке.Видео по временной ссылке доступно не более 12 часов.
-
Результат:
{ "id": "vplpskiedayr********", "description": "Video create", "createdAt": "2024-09-16T12:16:03.921095Z", "createdBy": "ajeol2afu1js********", "modifiedAt": "2024-09-16T12:16:03.921095Z", "done": true, "metadata": { "@type": "type.googleapis.com/yandex.cloud.video.v1.CreateVideoMetadata", "videoId": "vplvio5377ux********" }, "response": { "@type": "type.googleapis.com/yandex.cloud.video.v1.Video", "channelId": "vplcqy2qxkjy********", "createdAt": "2024-09-16T12:16:03.905662Z", "id": "vplvio5377ux********", "publicAccess": {}, "status": "WAIT_UPLOADING", "title": "my-very-first-video", "tusd": { "url": "https://tusd.video.cloud.yandex.net/files/5e7d6b3b68f9dc0d279ce719144c9caa+0006223B********" }, "updatedAt": "2024-09-16T12:16:03.905662Z", "visibilityStatus": "PUBLISHED" } }
Сохраните ссылку на загрузку видео (значение поля
url
) и идентификатор видео (значение поляvideoId
) — они понадобятся позднее. -
Загрузите видеофайл:
curl \ --location \ --request PATCH '<ссылка_на_загрузку_видео>' \ --header 'Content-Type: application/offset+octet-stream' \ --header 'Upload-Offset: 0' \ --header 'Tus-Resumable: 1.0.0' \ --data-binary '@<путь_к_видеофайлу>'
Где:
-
<ссылка_на_загрузку_видео>
— сохраненная ранее ссылка на загрузку, полученная при создании видео. -
<путь_к_видеофайлу>
— полный путь к файлу с видео, предваряемый символом@
.Например:
@/Users/myuser/Downloads/sample-video.MOV
.Не используйте в пути к файлу сокращения, в т.ч. тильду
~
.
-
-
Убедитесь, что видеофайл загрузился полностью, указав сохраненный ранее идентификатор видео:
grpcurl \ -rpc-header "Authorization: Bearer <IAM-токен>" \ -d '{"video_id": "<идентификатор_видео>"}' \ video.api.cloud.yandex.net:443 yandex.cloud.video.v1.VideoService/Get
Результат:
{ "id": "vplva3626rvh********", "channelId": "vplcqy2qxkjy********", "title": "my-very-first-video", "status": "READY", "duration": "39.981s", "visibilityStatus": "PUBLISHED", "createdAt": "2024-09-16T14:11:04.803285Z", "updatedAt": "2024-09-16T14:14:36.467614Z", "tusd": { "url": "https://tusd.video.cloud.yandex.net/files/55994a57bd30b2161399ccab7eb5f2de+0006223D********" }, "publicAccess": {} }
Если поле
status
имеет значениеPROCESSING
илиREADY
, значит видеофайл загрузился полностью. -
Если поле
status
имеет значениеWAIT_UPLOADING
, значит загрузка видеофайла была прервана. В этом случае видео требуется дозагрузить. Для этого необходимо знать позициюoffset
, на которой была прервана предыдущая попытка загрузки:-
Узнайте позицию
offset
прерванной загрузки, указав сохраненную ранее ссылку на загрузку видео:curl \ --head '<ссылка_на_загрузку_видео>' \ --header 'Host: tusd.video.cloud.yandex.net' \ --header 'Tus-Resumable: 1.0.0'
Результат:
HTTP/1.1 200 OK Server: nginx/1.18.0 Date: Mon, 16 Sep 2024 15:21:52 GMT Connection: keep-alive Cache-Control: no-cache Tus-Resumable: 1.0.0 Upload-Length: 100100627 Upload-Metadata: filename c2FtcGxlLXZpZGVv********,video_id dnBsdjVpeWh2M2F6ZnYz******** Upload-Offset: 28231123 X-Content-Type-Options: nosniff X-Request-Id: 3b775c2a******** X-Trace-Id: 95ab2f994557ce1b1ee9dd09******** X_h: edge-5b647c8d67-***** Access-Control-Allow-Origin: * Access-Control-Allow-Headers: * Access-Control-Expose-Headers: * Expires: Thu, 01 Jan 1970 00:00:01 GMT
Сохраните значение поля
Upload-Offset
— оно потребуется при дозагрузке видеофайла. -
Дозагрузите видеофайл, выполнив команду:
curl \ --location \ --request PATCH '<ссылка_на_загрузку_видео>' \ --header 'Content-Type: application/offset+octet-stream' \ --header 'Upload-Offset: <значение_offset>' \ --header 'Tus-Resumable: 1.0.0' \ --data-binary '@<путь_к_видеофайлу>'
Где:
-
<ссылка_на_загрузку_видео>
— сохраненная ранее ссылка на загрузку, полученная при создании видео. -
<значение_offset>
— сохраненное ранее значениеoffset
— позиции в файле, на которой прервалась предыдущая попытка загрузки. -
<путь_к_видеофайлу>
— полный путь к файлу с видео, предваряемый символом@
.Например:
@/Users/myuser/Downloads/sample-video.MOV
.Не используйте в пути к файлу сокращения, в т.ч. тильду
~
.
-
Повторно убедитесь, что видеофайл загрузился полностью. Если загрузка вновь была прервана, повторите действия, описанные в текущем шаге.
-
Загрузить несколько видео
-
Откройте главную страницу
Cloud Video. -
Выберите канал.
-
На вкладке
Видео нажмите кнопку Загрузить видео. -
На странице загрузки нажмите кнопку Выбрать файл и выберите несколько видео, которые вы хотите загрузить.
Поддерживается загрузка видео в различных форматах, например: MP4
, AVI , MKV , FLV , MOV , WebM и других.В сервисе действуют ограничения на разрешение публикуемых видео.
Дождитесь окончания загрузки всех файлов.
После завершения обработки видео станут доступны для просмотра.
При необходимости добавьте субтитры и измените название и обложку отдельно для каждого из загруженных видео.