Несколько видео YouTube в одном URL для вставки - PullRequest
2 голосов
/ 11 апреля 2020

Можно ли создать один URL для встраивания с несколькими моментами начала и окончания видео; как ниже?

http://www.youtube.com/embed/VTNSdABrKAI?start=134&end=225/embed/I4LoGhyb2uc?start=172&end=257

Таким образом, следующий клип воспроизводится в одном и том же видеокадре вместо размещения нескольких URL-адресов для встраивания на веб-странице;

http://www.youtube.com/embed/VTNSdABrKAI?start=134&end=225

http://www.youtube.com/embed/I4LoGhyb2uc?start=172&end=257

Или не создавайте, редактируйте и загружайте совершенно новое видео на YouTube и рассматривайте претензии в отношении авторских прав, как показано ниже?

https://www.youtube.com/watch?v=9DNmc618JwE

1 Ответ

2 голосов
/ 15 апреля 2020

Youtube позволяет программно создавать списки воспроизведения на вашем канале и добавлять элементы в списки воспроизведения . Вызов playlistItems/insert также позволяет указывать свойства position, startAt и endAt для клипа, который, по-видимому, соответствует вашему варианту использования.

Одно предостережение при использовании этот API - вы должны быть зарегистрированы, чтобы использовать его

Плейлист может содержать до 200 видео

UPD Я запустил следующие запросы API и смог успешно создать список воспроизведения .

curl --request POST \
  'https://www.googleapis.com/youtube/v3/playlists?part=snippet%2Cstatus&key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"snippet":{"title":"Sample playlist created via API","description":"This is a sample playlist description."},"status":{"privacyStatus":"unlisted"}}' \
  --compressed
curl --request POST \
  'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"snippet":{"playlistId":"PL5W0uIHD5lLZAK1reCuTDFpGMPygNDWvm","position":0,"resourceId":{"kind":"youtube#video","videoId":"PLOPygVcaVE"}},"contentDetails":{"videoId":"PLOPygVcaVE","startAt":"PT4H37M0.000S","endAt":"PT4H38M0.000S"}}' \
  --compressed
curl --request POST \
  'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"snippet":{"playlistId":"PL5W0uIHD5lLZAK1reCuTDFpGMPygNDWvm","position":1,"resourceId":{"kind":"youtube#video","videoId":"L_LUpnjgPso"}},"contentDetails":{"videoId":"L_LUpnjgPso","startAt":"PT8H37M0.000S","endAt":"PT8H38M0.000S"}}' \
  --compressed

Но, похоже, на Youtube устарело contentDetails.startAt и contentDetails.endAt, на который я предлагал вам положиться: время начала, кажется, все еще работает, но клип воспроизводится до конца.

Я бы предложил проверить предложения из этой SO-темы - вы можете использовать некоторые идеи из ответов (например, использовать сторонних разработчиков или Javascript события в плеере)

...