【问题标题】:youtube gdata timeoutyoutube gdata 超时
【发布时间】:2026-01-07 00:40:01
【问题描述】:

我对 Youtube 的 GDATA API 有疑问。

如果不更改我的 php 设置或代码,我将无法再通过 PHP API 访问 YouTube。

创建一个新的 Zend_Gdata_YouTube 对象并加载视频数据会导致“Zend_Gdata_App_HttpException”异常并显示以下消息:

无法连接到 tcp://gdata.youtube.com:80。错误 #110: /usr/share/php/Zend/Gdata/App.php:688 中的连接超时 跟踪:#0 /usr/share/php/Zend/Gdata.php(221): Zend_Gdata_App->performHttpRequest('GET', 'http://gdata.yo...', Array, 空,空,空)#1 /usr/share/php/Zend/Gdata/App.php(875): Zend_Gdata->performHttpRequest('GET', 'http://gdata.yo...', Array) #2 /usr/share/php/Zend/Gdata/App.php(763): Zend_Gdata_App->get('http://gdata.yo...', NULL) #3 /usr/share/php/Zend/Gdata/App.php(220): Zend_Gdata_App->importUrl('http://gdata.yo...', 'Zend_Gdata_YouT...', NULL) #4 /usr/share/php/Zend/Gdata.php(187): Zend_Gdata_App->getEntry('http://gdata.yo...', 'Zend_Gdata_YouT...') '#5' /usr/share/php/Zend/Gdata/YouTube.php(293): Zend_Gdata->getEntry('http://gdata.yo...', 'Zend_Gdata_YouT...')

我知道这是超时。但是什么会导致这个超时?因为我不介意对服务器的连接设置进行任何更改,并且对 gdata.youtube.com 的 ping 操作完美。

另外我想说的是,系统不是在共享托管平台上运行的,因此没有托管人做他想做的任何事情 - 系统更改由我个人执行。

【问题讨论】:

  • 你能在/usr/share/php/Zend/Gdata/App.php:688这一行周围添加代码吗?

标签: php timeout youtube-api


【解决方案1】:

YouTube API 服务器端没有任何事情会导致任何客户端完全拒绝连接。即使由于某种原因,您的客户端的流量违反了某些配额限制或由于反 DoS 保护而被阻止(我并不是在暗示这种情况),我们仍然会为您的请求返回有效的 HTTP 响应。

所以,我可以肯定地说,无论是什么问题,都不是由 YouTube API 服务器引起的。最可能的罪魁祸首是服务器和 YouTube API 之间的网络问题。符合标准的网络故障排除程序。

【讨论】:

  • 是的,这不是 API 的问题。经过更多调查后,我发现它与 ipv6 相关,并且我的服务器无法将 ipv6 处理到任何 Google 服务器。更有趣的是:他只是无法通过 ipv6 连接到 Google Server - v4 可以工作,非 Google Servers 和 v6 也可以工作
【解决方案2】:

我通过将上传脚本中的所有 google 链接更改为安全连接来解决此问题。

比如我改了

http://uploads.gdata.youtube.com/feeds/api/users/default/uploads

https://uploads.gdata.youtube.com/feeds/api/users/default/uploads

【讨论】: