Youtube 上传 api 套接字超时

Posted

技术标签:

【中文标题】Youtube 上传 api 套接字超时【英文标题】:Youtube upload api socket times out 【发布时间】:2021-09-09 02:45:24 【问题描述】:

所以我有一个简单的测试脚本,我试图将一个 6 秒的 mp4 视频上传到我的频道。我已经在谷歌云中配置了所有内容,并且身份验证工作正常。当我运行脚本时,问题就来了。大约 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() 处生成的。

【问题讨论】:

【参考方案1】:

所以我试图解决这个问题。我所做的只是增加套接字的默认超时时间,它可以工作!

import socket
socket.setdefaulttimeout(30000)

【讨论】:

以上是关于Youtube 上传 api 套接字超时的主要内容,如果未能解决你的问题,请参考以下文章

GCP java SDK在20秒后抛出套接字连接超时

使用 Java 的 StreamLabs 套接字 API

如何设定ClientSocket的超时时间。

有没有办法区分连接超时和套接字超时?

什么叫套接字超时~

Nodejs,Cloud Firestore上传任务 - 身份验证错误:错误:套接字挂起