Youtube Videos, автоматическое переключение через API

Если мы хотим значительно изменить наши видео или чтобы описания и заголовки изменялись автоматически с течением времени, мы можем использовать API Youtube.

В этой статье я подробно расскажу, как это можно сделать, и оставлю небольшой скрипт, чтобы вы могли его скопировать.

Важное уточнение!

Хоть код и функционален, я не собираюсь добавлять (чтобы не добавлять сложности) часть автоматизации, чтобы она работала постоянно на протяжении суток.

Знания/требования

  • питон
  • API Google
  • Oauth2, Youtube, GCP Youtube
  • YouTube канал

С помощью небольшого скрипта на Python мы будем аутентифицироваться в API Youtube благодаря токену, который мы сгенерируем через проект в Google Cloud Platform, и оттуда мы отправим модификации, идентифицируя видео, которые мы хотим изменить благодаря их идентификатор.

Процесс

Прежде всего, у нас должен быть проект в Google Cloud Platform, если вы не знаете, что это такое или как это работает, я оставляю вам статью, в которой я рассказываю об основах.

https://medium.com/@gonzagalante/google-cloud-basics-699129f772a6

После этого мы должны активировать API YouTube по следующей ссылке.



Теперь, когда API активен, мы должны создать идентификатор клиента OAuth 2.0, вы увидите, что можно сгенерировать ключ API, но, поскольку в будущем мы стремимся автоматизировать это, еще лучше делать это с помощью OAuth, что позволяет нам не чтобы идентифицировать каждый раз, когда мы используем сценарий.

https://console.cloud.google.com/apis/credentials

После ввода ссылки мы нажимаем «СОЗДАТЬ УЧЕТНЫЕ ДАННЫЕ».

В типе приложения мы выбираем «Приложение для рабочего стола» и называем то, которое вы предпочитаете.

После завершения мы загружаем файл Json и сохраняем его, в моем случае с именем «credentials.json».

Со всем этим готовым мы можем кодировать скрипт.

Код

Для работы в закрытой среде внутри папки, которую мы создали для наших файлов, из терминала запускаю «pipenv shell».

Pipenv — это библиотека Python, которая позволяет создавать виртуальные среды.

С этим готовым мы устанавливаем следующие зависимости.

pipenv установить google-api-python-client google-auth-oauthlib google-auth-httplib2

Создать токен

Прежде всего, нужно использовать загруженные учетные данные для создания токена, с помощью которого мы аутентифицируемся в API.

def generateToken():

    sdir = os.path.dirname(__file__)
    # We load the credentials
    credentials = os.path.join("credentials/desktopYT.json")

    # We generate the token
    flow = InstalledAppFlow.from_client_secrets_file(credentials, SCOPES)
    creds = flow.run_local_server(port=0)

    # Save the credentials for the next run
    with open(os.path.join(sdir, './credentials/tokenYT.json'), 'w') as token:
        token.write(creds.to_json())

    return "Token generated"

Обновить видео

def updateVideo():
    
    # With the google function "Credentials" we import the Json downloaded from GCP to authenticate ourselves
    creds = Credentials.from_authorized_user_file('./tokenYT.json', SCOPES)
    
   
    youtube = build("youtube", "v3", credentials=creds)

    # We introduce the parameters to modify in the video
    update = youtube.videos().update(
        part="snippet",
        body={
          "id": "ID_VIDEO",
          "snippet": {
            "description": f'Video Description',
            "title": f'Title Video',
            "categoryId": "24"
          }
        }
    )

    # We make the API call
    update.execute()

    return "Video updated"

Модификации

Среди модификаций, которые мы можем сделать, следующие:

  • snippet.categoryid
  • snippet.defaultLanguage
  • snippet.description
  • snippet.tags[]
  • snippet.title
  • статус.встраиваемый
  • статус.лицензия
  • status.privacyStatus
  • status.publicStatsViewable
  • status.publishAt — если вы устанавливаете значение для этого свойства, вы также должны установить для свойства status.privacyStatus значение private.
  • status.selfDeclaredMadeForKids

Ссылка на код



Статья об автоматическом канале YouTube