Есть ли способ использовать API YouTube v3, чтобы определить, является ли видео (по идентификатору) «коротким» или обычным?

Я пытаюсь определить, загружается ли видео как «короткое» или как обычное/длинное видео через API данных v3.

Я проверяю информацию о видео через:

https://www.googleapis.com/youtube/v3/videos?key=[API_KEY]&id=[VIDEO_ID]&part=snippet

Но ничего не возвращенное, похоже, указывает мне на то или иное.

Отвечает ли это на ваш вопрос? API данных YouTube v3, чтобы проверить, является ли идентификатор видео коротким

Benjamin Loison 09.06.2024 02:21

К сожалению, нет, хотя вопрос тот же, ответы не дают хороших решений. Один из них предполагает дополнительный вызов URL-адреса /shorts/[VIDEO_ID] для захвата кода ответа HTTP, другой — для стороннего API, а остальные делают предположения на основе длины контента и соотношения сторон. Учитывая, что ваша ссылка связана с вопросом, заданным более 2 лет назад, я надеялся, что могут быть известны новые решения.

goose 09.06.2024 03:05
История изменений YouTube Data PI v3 не содержит кратких упоминаний, поэтому вы можете полагаться только на веб-скрапинг.
Benjamin Loison 09.06.2024 10:19
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используя следующий подход, вы можете определить, является ли видео #short video или нет.

Что вам понадобится:

  • VIDEO_ID, который вы хотите проверить, является ли видео #short.
  • CHANNEL_ID владельца видео.

Подход заключается в следующем:

  • Отправьте запрос playlistItems.list, передав плейлисты #shorts1 в параметре playlistId.
  • В указанном запросе добавьте параметр videoId VIDEO_ID, который вы хотите протестировать.

Это пример:

  • Идентификатор_канала: UCbqEsRhXQI5KWYVr8mSWWWw
  • #Shorts Playlist_ID: UUSHbqEsRhXQI5KWYVr8mSWWWw <= Это то же самое CHANNEL_ID, но после замены первых двух символов из CHANNEL_ID (в данном случае символы UC на UUSH в начале). Обратите внимание на выделенные символы.
  • Идентификатор видео: 07pPUAjEmzA

Запрос:

GET https://youtube.googleapis.com/youtube/v3/playlistItems?part=id,snippet,contentDetails&maxResults=10&playlistId=UUSHbqEsRhXQI5KWYVr8mSWWWw&videoId=07pPUAjEmzA&fields=items(contentDetails/videoId,id,snippet/title),kind,nextPageToken,pageInfo,prevPageToken,tokenPagination&key=[YOUR_API_KEY] HTTP/1.1

Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json

Результат:

{
  "kind": "youtube#playlistItemListResponse",
  "items": [
    {
      "id": "VVVTSGJxRXNSaFhRSTVLV1lWcjhtU1dXV3cuMDdwUFVBakVtekE",
      "snippet": {
        "title": "Batman in Blender for 1h and 30 min #blender #speedsculpt #speedsculpting #digitalart"
      },
      "contentDetails": {
        "videoId": "07pPUAjEmzA"
      }
    }
  ],
  "pageInfo": {
    "totalResults": 1,
    "resultsPerPage": 10
  }
}

Ответ подтверждает, что указанный идентификатор видео 07pPUAjEmzA действительно является видео #shorts.

Вы можете попробовать этот запрос в демоверсии API Explorer.


Изменив значение параметра videoId на LyvOV84kJmU и повторив запрос, ответ будет пустым:

{
  "kind": "youtube#playlistItemListResponse",
  "items": [],
  "pageInfo": {
    "totalResults": 0,
    "resultsPerPage": 10
  }
}

В данном случае это означает, что видео НЕ является видео #shorts, несмотря на то, что видео LyvOV84kJmU взято с канала UCbqEsRhXQI5KWYVr8mSWWWw.


1вся благодарность автору ответа за его удивительное открытие. Я предполагаю, что плейлисты Shorts создаются автоматически, когда владелец канала YouTube загружает видео #short. Если вы или кто-либо знает настоящую причину создания плейлиста только с видео #shorts, сообщите нам об этом.

2 Я тестировал автоматически сгенерированные каналы YouTube и, похоже, это не работает.

Другие вопросы по теме