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