Невозможно вставить playlistItem в список воспроизведения в определенной позиции - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь вставить видео YouTube в свой список воспроизведения в определенной позиции.Согласно документам , я должен быть в состоянии установить атрибут position.Однако эти настройки, похоже, ничего не делают.Используя следующий фрагмент кода, ошибки не выдаются, и видео вставляется.Единственная проблема заключается в том, что он вставляется в верхней части списка воспроизведения.Атрибут position игнорируется.

await google.youtube('v3').playlistItems.insert({
  auth,
  part: 'snippet',
  resource: {
    snippet: {
      playlistId,
      position: 69,
      resourceId: {
        kind: 'youtube#video',
        videoId: 'M7FIvfx5J10',
      },
    },
  },
})

Я пытался поместить position в разных местах объекта безрезультатно.Я также подал проблему на официальном трекере проблем API Google, но я не получил никакого ответа.Я использую официальный googleapis пакет узла .

Редактировать:

Если я пытаюсь вставить, то update , запрос на обновление выдает403 playlistItemsNotAccessible.Это заставляет меня думать, что это может быть (плохо документированная) проблема с разрешениями.Мои области видимости [ 'https://www.googleapis.com/auth/youtube' ].

Редактировать 2:

Вставка использует значение position.Если я поставлю position: -12, я получу: Error: Invalid value for UnsignedInteger: -12.

1 Ответ

0 голосов
/ 05 июля 2018

Попробуйте протестировать его здесь Apis explorer он создаст для вас тело запроса, и вы можете использовать его в своем коде

{
 "snippet": {
  "playlistId": "",
  "resourceId": {
   "kind": "youtube#video",
   "videoId": "M7FIvfx5J10"
  },
  "position": 69
 }
}

полное тело запроса было бы что-то вроде этого

{
  "kind": "youtube#playlistItem",
  "etag": etag,
  "id": string,
  "snippet": {
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": string,
    "thumbnails": {
      (key): {
        "url": string,
        "width": unsigned integer,
        "height": unsigned integer
      }
    },
    "channelTitle": string,
    "playlistId": string,
    "position": unsigned integer,
    "resourceId": {
      "kind": string,
      "videoId": string,
    }
  },
  "contentDetails": {
    "videoId": string,
    "startAt": string,
    "endAt": string,
    "note": string,
    "videoPublishedAt": datetime
  },
  "status": {
    "privacyStatus": string
  }
}

Ошибка обновления

{
 "error": {
  "errors": [
   {
    "domain": "youtube.playlistItem",
    "reason": "playlistItemsNotAccessible",
    "message": "Forbidden"
   }
  ],
  "code": 403,
  "message": "Forbidden"
 }
}

Помните, что Youtube api основан на каналах, если вы пытаетесь получить доступ к каналу, отличному от того, который вы аутентифицировали для своего перехода.чтобы увидеть эту ошибку.Пользователь, чей список воспроизведения вы пытаетесь добавить, должен подтвердить подлинность вашего приложения и выбрать список воспроизведения на этом канале.Вы не можете обновить чужой плейлист без разрешения.

...