我正在使用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抛出这个错误,即使URL是直接(公共)链接。我没有得到什么是错误的我的代码,为什么它不工作。请帮忙:)
以防其他人仍在寻找答案,我用我从Dropbox编写的应用程序读取txt文件时遇到了类似的问题。我发现我没有使用正确的直接链接格式。正确的链接(对于这个线程的示例链接)应该是:
dl.dropboxusercontent.com/uhh/336/test.wmv
只需将'www'更改为'dl'将适用于web浏览器,因为它们自动处理重定向。对于应用程序和脚本,您必须集成重定向处理。或者直接格式化直接链接
根据所提供的信息,不可能明确地回答这个问题,但我们可以将其缩小到几种可能性。我建议您运行以下快速调试清单:
-
如果你复制/粘贴这个链接到你的网络浏览器,使用相同的凭据,你能下载视频吗?
-
如果没有,那么要么是凭证问题,要么是URL本身的问题。
-
如果你能够从浏览器下载它,那么这意味着你的代码有问题或YouTube的问题。
-
如果你完成了上面的步骤,但你仍然处于僵局,请把你的结果作为评论,我们将深入研究。
上载到YouTube的文件必须在本地路径上。
- 使用cURL 在本地下载文件
- 将newMediaFileSource设置为本地文件的路径
在dropbox的"get link"给出了" dropbox页面的链接"
试试这个。
- 打开dropbox的视频页面
- 右键点击"下载",然后点击"复制链接位置"
希望能有所帮助