Search code examples
youtube-data-apigoogle-api-ruby-client

Upload Captions YouTube Data API ruby


I am trying to upload captions to YouTube using the Data API. However I can't find in the reference or in the forum any example in Ruby. In specific how to send the actual caption file (xml).

body = {
    :snippet => {
      :videoId => videoId,
      :language => "English",
      :name => "English"
    }
  }
  captions_insert_response = client.execute(
    :api_method => youtube.captions.insert,
    :parameters => {
      :part => body.keys.join(',')
    },
    :body_object => body
  )

where and how do I add the caption file? I tried doing it like uploading a video, but it didn't seem to work. This line was added after ":body_object"

:media => Google::APIClient::UploadIO.new(captions_file, 'text/xml')

Thanks


Solution

  • I solved the issue changing the language in the snippet to "en". This is the complete request if someone needs it.

    body = {
        :snippet => {
          :videoId => videoId,
          :language => "en",
          :name => "English"
        }
      }
      captions_insert_response = client.execute(
        :api_method => youtube.captions.insert,
        :body_object => body,
        :media => Google::APIClient::UploadIO.new(captions_file, 'text/xml'),
        :parameters => {
          'uploadType' => 'multipart',
          :part => body.keys.join(',')
        }
      )