我正在使用youtube ZEND gdata api 将视频上传到我的YouTube帐户。但现在我需要将视频上传到YouTube,这些视频存储在我的DropBox帐户中。我有公共链接或直接链接视频文件。我正在使用的代码是:
<?php
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_App_Exception');
$developerKey = '******************';
$applicationId = '*********';
$clientId = '';
$video_title = 'test movie';
$video_description = 'test movie';
$video_category = 'Entertainment';
$video_tags = 'test,movie';
$path_of_uploaded_file = 'http://dl.dropbox.com/uhh/336/test.wmv';
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
$username = '*****',
$password = '*****',
$service = 'youtube',
$client = null,
$source = '*******', // a short string identifying your application
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
$yt = new Zend_Gdata_YouTube($httpClient);
// create a new VideoEntry object
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
// create a new Zend_Gdata_App_MediaFileSource object
$filesource = $yt->newMediaFileSource($path_of_uploaded_file);
..
.
.
.
.
.?>
我得到的错误是:要在http://dl.dropbox.com/uhh/336/test.wmv上传的文件不存在或无法读取。
即使网址是直接(公共)链接,我也不知道为什么YouTube会抛出此错误。我没有弄清楚我的代码有什么问题以及为什么它不起作用。请帮助:)
答案 0 :(得分:0)
根据所提供的信息,最终无法回答这个问题,但我们可以将其缩小到几个可能性。我建议您使用这个快速调试清单:
如果您使用相同的凭据将该确切链接复制/粘贴到您的网络浏览器中,您是否可以下载该视频?
如果没有,那么凭证或网址本身就会出现问题。
如果您能够从浏览器下载,则表示您的代码存在问题或YouTube存在问题。
如果您执行上述步骤但仍处于僵局,请将结果发布为评论,我们会深入研究。
答案 1 :(得分:0)
您上传到YouTube的文件必须位于本地路径上。
答案 2 :(得分:0)
在Dropbox中,“获取链接”会显示“保管箱页面的链接”。
试试这个。
希望这有帮助
答案 3 :(得分:0)
为了防止其他人仍在寻找答案,我在使用我从Dropbox写的应用程序读取txt文件时遇到了类似的问题。我发现我没有使用正确的直接链接格式。正确的链接(对于此线程示例链接)将是:
dl.dropboxusercontent.com/uhh/336/test.wmv
将'www'更改为'dl'将适用于网络浏览器,因为它们会自动处理重定向。对于应用程序和脚本,您必须集成重定向处理。或者只是正确格式化直接链接。