Как я могу загрузить всю папку на Youtube с Youtube API - PullRequest
1 голос
/ 08 января 2020

Мне нужно загрузить почти два видео на мой канал. Я пытался загрузить их с YOTUB API, но это дает ошибку. Я пытался сделать запрос для каждого видео с для l oop. Без для l oop он может загружать только одно видео, но я хочу загрузить всю папку, не вводя ключ OAuth несколько раз

Ошибка:

  File "C:\Python36\lib\ssl.py", line 972, in sendall
    v = self.send(byte_view[count:])
  File "C:\Python36\lib\ssl.py", line 941, in send
    return self._sslobj.write(data)
  File "C:\Python36\lib\ssl.py", line 642, in write
    return self._sslobj.write(data)
socket.timeout: The write operation timed out
import os
import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors
from googleapiclient.http import MediaFileUpload

scopes = ["https://www.googleapis.com/auth/youtube.upload"]

def main():
    Song_list=os.listdir('C:\\Users\\erkan\\Desktop\\müzik ve kutusu\\hazir')

    os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
    api_service_name = "youtube"
    api_version = "v3"
    client_secrets_file = "client_secret.json"

    flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
        client_secrets_file, scopes)
    credentials = flow.run_console()
    youtube = googleapiclient.discovery.build(
        api_service_name, api_version, credentials=credentials)

    for song in Song_list: ######################## the For Loop ################
        song_name = song.replace('.mp4', '')
        request = youtube.videos().insert(
            part="snippet,status",
            body={
                "snippet": {
                    "categoryId": "10",
                    "description": "Description of uploaded video.",
                    "title": song_name,
                    "tags": ["müzik", "ve", "kutusu", song_name]
                },
                "status": {
                    "privacyStatus": "private"
                }
            },

            media_body=MediaFileUpload('C:\\Users\\erkan\\Desktop\\müzik ve kutusu\\hazir\\' + song)
        )
        response = request.execute()
        print(response)
        print(song + " uploaded")
if __name__ == "__main__":
    main()

1 Ответ

1 голос
/ 09 января 2020

я решил это с изменением

os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "0"

и

media_body=MediaFileUpload('C:\\Users\\erkan\\Desktop\\müzik ve kutusu\\hazir\\' + song, chunksize=-1, resumable=True)

но idk, какой из них решен, моя проблема ¯ \ _ (ツ) _ / ¯

...