Youtube 上传 api 套接字超时
Youtube upload api socket times out
所以我有一个简单的测试脚本,我试图将 6 秒的 mp4 视频上传到我的频道。我已经在 google 云中配置了所有内容并且身份验证工作正常。当我 运行 脚本时,问题就来了。大约 30 秒后,控制台中没有任何输出,然后出现此错误:
socket.timeout: The write operation timed out
这是我的代码:
import socket
import datetime
from Google import Create_Service
from googleapiclient.http import MediaFileUpload
CLIENT_SECRET_FILE = 'client_secret.json'
API_NAME = 'youtube'
API_VERSION = 'v3'
SCOPES = ['https://www.googleapis.com/auth/youtube.upload']
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
upload_date_time = datetime.datetime(
2021, 12, 25, 12, 30, 0).isoformat() + '.000Z'
request_body = {
'snippet': {
'categoryI': 19,
'title': 'Upload Testing',
'description': 'Hello World Description',
'tags': ['Travel', 'video test', 'Travel Tips']
},
'status': {
'privacyStatus': 'private',
'publishAt': upload_date_time,
'selfDeclaredMadeForKids': False,
},
'notifySubscribers': False
}
mediaFile = MediaFileUpload('HelloWorld.MP4')
response_upload = service.videos().insert(
part='snippet,status',
body=request_body,
media_body=mediaFile
).execute()
请注意,身份验证令牌是在 Create_Service() 生成的。
所以我想稍微解决一下这个问题。我所做的只是增加套接字的默认超时时间,它起作用了!
import socket
socket.setdefaulttimeout(30000)
所以我有一个简单的测试脚本,我试图将 6 秒的 mp4 视频上传到我的频道。我已经在 google 云中配置了所有内容并且身份验证工作正常。当我 运行 脚本时,问题就来了。大约 30 秒后,控制台中没有任何输出,然后出现此错误:
socket.timeout: The write operation timed out
这是我的代码:
import socket
import datetime
from Google import Create_Service
from googleapiclient.http import MediaFileUpload
CLIENT_SECRET_FILE = 'client_secret.json'
API_NAME = 'youtube'
API_VERSION = 'v3'
SCOPES = ['https://www.googleapis.com/auth/youtube.upload']
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
upload_date_time = datetime.datetime(
2021, 12, 25, 12, 30, 0).isoformat() + '.000Z'
request_body = {
'snippet': {
'categoryI': 19,
'title': 'Upload Testing',
'description': 'Hello World Description',
'tags': ['Travel', 'video test', 'Travel Tips']
},
'status': {
'privacyStatus': 'private',
'publishAt': upload_date_time,
'selfDeclaredMadeForKids': False,
},
'notifySubscribers': False
}
mediaFile = MediaFileUpload('HelloWorld.MP4')
response_upload = service.videos().insert(
part='snippet,status',
body=request_body,
media_body=mediaFile
).execute()
请注意,身份验证令牌是在 Create_Service() 生成的。
所以我想稍微解决一下这个问题。我所做的只是增加套接字的默认超时时间,它起作用了!
import socket
socket.setdefaulttimeout(30000)