我需要将近两百个视频上传到我的 channel 。我尝试使用 yotube api 上传它们,但出现错误。我尝试使用 for 循环对每个视频发出请求。如果没有 for 循环,它只能上传一个视频,但我想上传整个文件夹,而无需多次输入 OAuth key
错误:
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()
最佳答案
我通过改变解决了这个问题
os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "0"
和
media_body=MediaFileUpload('C:\\Users\\erkan\\Desktop\\müzik ve kutusu\\hazir\\' + song, chunksize=-1, resumable=True)
但我不知道其中哪一个解决了我的问题 ́\_(ツ)_/́
关于python - 我如何使用 Youtube api 将整个文件夹上传到 Youtube,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59652650/