我正在尝试使用youtube api v3 php搜索...
我第一次使用这个API我是初学者...
我有3个问题;
1)如何在搜索列表下面显示分页编号?(每页50条结果)
2)视频持续时间如何显示在列表中?(3分20秒:秒)
3)如何订购viewCount
if ($_GET['q']) {
require_once 'src/Google_Client.php';
require_once 'src/contrib/Google_YoutubeService.php';
$DEVELOPER_KEY = 'my key';
$client = new Google_Client();
$client->setDeveloperKey($DEVELOPER_KEY);
$youtube = new Google_YoutubeService($client);
try {
$searchResponse = $youtube->search->listSearch('id,snippet', array(
'q' => $_GET['q'],
'maxResults' => 50,
'type' => "video",
));
foreach ($searchResponse['items'] as $searchResult) {
$videos .= '<li style="clear:left"><img src="'.$searchResult['snippet']['thumbnails']['default']['url'].'" style="float:left; margin-right:18px" alt="" /><span style="float:left">'.$searchResult['snippet']['title'].'<br />'.$searchResult['id']['videoId'].'<br />'.$searchResult['snippet']['publishedAt'].'<br />'.$item['contentDetails']['duration'].'</span></li>';
}
$htmlBody .= <<<END
<ul>$videos</ul>
END;
} catch (Google_ServiceException $e) {
$htmlBody .= sprintf('<p>A service error occurred: …Run Code Online (Sandbox Code Playgroud) 我无法开始使用Android Youtube API.
我有一个ActionBarActivity,v4.ViewPager我想把多个YouTubePlayerSupportFragment内部.
我知道Error inflating class com.google.android.youtube.player.YouTubePlayerView,我的提示是继承链中的某些内容是错误的,但我不知道是什么.
我的代码到目前为止:XML:
<FrameLayout android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/youtube_player"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:padding="5dp" /> </FrameLayout>
Run Code Online (Sandbox Code Playgroud)
Java的:
public class MyYoutubeFragment extends YouTubePlayerSupportFragment {
private static final String API_KEY = "";
private String videoId = "qNggvk8QtaY";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_youtube, container, false);
YouTubePlayerView youTubePlayerView = (YouTubePlayerView) view.findViewById(R.id.youtube_player);
youTubePlayerView.initialize(API_KEY, this);
return view; …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager youtube-data-api
当我使用youtube数据API v3(带有youtube.playlists.list)从播放列表中提取视频列表时,可以定义要通过参数“ parts”检索的部分列表,以最大程度地减少数据负载。
api指出(要求多个位置)带有子属性的属性,它也会包括所有子属性。但是我在任何地方都找不到如何将请求限制为子财产的方式,而没有获得所有其他部分的权利?
具体来说,我对特定的缩略图感兴趣,但对ID,描述,标题和其他拇指不感兴趣。那么,如何在不获取所有父级和同级属性的情况下指定(格兰)子级属性呢?
这是请求的样子:
gapi.client.request({
'path': '/youtube/v3/playlistItems',
'method': 'get',
'params' : {
'part' : 'id, snippet.thumbnails.default',
'maxResults': numberOfItems,
'playlistId': playlistId,
'order': 'date'
}
}).execute(function (jsonResp, rawResp) {
// do the funky chicken dance
});
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
part : 'snippet.thumbnails.default',
part : 'snippet#thumbnails#default',
part : 'default'
Run Code Online (Sandbox Code Playgroud)
都没有解决。
但是我可能在这里吠错了树吗?将代码片段分成多个部分是否太麻烦了?我是否应该只接受获取整个代码片段,并从客户端挖掘出感兴趣的部分?
提前致谢。
我想知道有没有办法通过Youtube数据API V3.0管理注释和卡片
我在parse.com上有一个脚本,它使用YouTube v3 API从~10个频道导入最新视频的最新信息.它运作良好一段时间,但大约一个月前它开始每天失败一次或两次错误:
错误:无法获取https://www.googleapis.com/youtube/v3/ ..."错误":{"errors":[{"domain":"usageLimits","reason":"servingLimitExceeded", "消息":"超出服务限额"},"代码":403,"消息":"超出服务限额"}
从下面的屏幕截图中可以看出,我每天最多可使用37k的50000k单位.我估计一个脚本运行可能最多2k单位.为了确保我没有达到3k单位/秒/用户限制,我在每次调用YouTube API 之前都增加了1秒延迟,但我仍然偶尔会看到这些错误.
这是怎么回事?YouTube v3 API是否有其他限制,例如每个IP的单位?(Parse的一个IP可以承载数千个安装)
我正在尝试使用YouTube API为视频获得归一化的游戏名称(如果它属于游戏类别)。
例如:https : //www.youtube.com/watch?v=qIvWgSpy31k,对于此视频,我可以看到其规范化的游戏名称是以下描述:
但是当我使用该videos.list方法时,我看不到此返回。检查视频的所有属性后,我也找不到。
有什么方法可以获取游戏名称?
我想在youtube帐户上获取所有频道.
我做了什么:
是否有可能获得我的所有频道?如果可能的话我该怎么做才能得到它?
为了生成我的代码,我在gitHub上修改了从谷歌推出的样本.
一切顺利,视频上传没有问题,但现在我需要为我的视频添加一些注释或"结束屏幕",因为我需要在看到我的"视频预览"后将用户重定向到我的网站.
所以,工作流程是这样的:
1)用户从jsp页面插入标题和描述.
2)当他点击按钮上的软件需要存储在我的数据库用户的凭据,然后通过所有参数,下面我张贴的方法.
3)课程将视频上传到YouTube.
现在我的问题是:有一种简单的方法可以将我的链接"附加"到上传的视频中吗?
我应该在视频区域使用注释,号召性用语或任何类型的叠加消息/按钮.
如果覆盖在所有视频持续时间内持续存在,或者仅在视频结尾处出现,则无关紧要.
我希望有一个人可以帮助我!我希望谷歌能够以更好的方式重写文档,因为我对于实现YouTube的API变得疯狂.
这是我的源代码片段:
public static void upload( String jsonString, String videoPath, String title , String description, String articleTags, HttpServletRequest request) {
// This OAuth 2.0 access scope allows an application to upload files
// to the authenticated user's YouTube channel, but doesn't allow
// other types of access.
List<String> scopes = Lists.newArrayList("https://www.googleapis.com/auth/youtube.upload");
try {
// Authorize the request.
JSONObject jsonObj = new JSONObject(jsonString);
GoogleCredential credential = new GoogleCredential.Builder()
.setClientSecrets(jsonObj.getString("client_id"), jsonObj.getString("client_secret"))
.setJsonFactory(Auth.JSON_FACTORY).setTransport(Auth.HTTP_TRANSPORT).build()
.setRefreshToken(jsonObj.getString("refresh_token")).setAccessToken(jsonObj.getString("access_token")); …Run Code Online (Sandbox Code Playgroud) 我想从我自己的应用程序上传Youtube上的视频,并在杀死应用程序后甚至在后台模式下恢复上传.我试过这个链接,但这是一个MacApp而不是iOS应用程序.此外,当我运行它时,它在pod文件中说NSURLSession在10.9或更新版本中可用.所以它似乎对我不起作用.
https://github.com/google/google-api-objectivec-client-for-rest/tree/master/Examples
任何人都可以指导我如何在一个更好,也许是一个简单的例子中实现这一目标.
编辑: 我已尝试下面的代码,我得到以下错误.请帮助我解决问题.
func postVideoToYT(videoData: Data, token: String,title:String,innoId:Int,videoTags:String,callback: @escaping (Bool) -> Void) {
do {
let headers = ["Authorization": "Bearer \(token)"]
upload(multipartFormData: { multipartFormData in
multipartFormData.append("{'snippet':{'title' : '\(title)','description': 'abc'}}".data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: "snippet", mimeType: "application/json")
multipartFormData.append("{'status' : {'privacyStatus':'private'}}".data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: "status",mimeType: "application/json")
multipartFormData.append(videoData, withName: "video", fileName: "video.mov", mimeType: "application/octet-stream")
}, usingThreshold: 1, to: URL(string: "https://www.googleapis.com/upload/youtube/v3/videos?part=snippet&status")!, method: .post, headers: headers, encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { …Run Code Online (Sandbox Code Playgroud) 我的wordpress页面上有一个脚本,可让用户在我的网站上创建视频帖子,然后将视频上传到他们的YouTube.
用户单击我站点上的一个按钮,该按钮将表单数据从隐藏的输入字段发送到运行youtube上传api脚本的新窗口,如果用户未登录则要求他们这样做.
我遇到的问题是,当用户必须登录并重定向回页面时,帖子值会丢失并导致我的上传脚本失败,因为他们假定要定义视频路径.
我已经尝试了多次尝试以不同方式尝试并传递变量,但似乎没有任何工作,数据在登录后永远不会传递给页面.
如果已经登录,它总是有效.单击按钮时,变量将被传递.
$videoTitle = $_POST['ytu_title'];
$authorID = $_POST['a_id'];
$vidID = $_POST['vid_id'];
$dirpath = $_SERVER["DOCUMENT_ROOT"] ."/wp-content/uploads/".$authorID."/".$vidID;
// Set session variables
$_SESSION["favcolor"] = $_POST['vid_id'];
file_put_contents($dirpath."/videoTitle.txt", $videoTitle);
file_put_contents($dirpath."/authorID.txt", $authorID);
file_put_contents($dirpath."/vidID.txt", $vidID);
file_put_contents($dirpath."/dir.txt", $dirpath);
$vID = file_get_contents($dirpath.'/vidID.txt');
$auID = file_get_contents($dirpath.'/authorID.txt');
// Check to ensure that the access token was successfully acquired.
if ($client->getAccessToken()) {
$htmlBody = '';
$htmlBody2 = '';
try{
// REPLACE this value with the path to the file you are uploading.
$videoPath = $_SERVER["DOCUMENT_ROOT"] ."/wp-content/uploads/".$auID."/". $vID."/output-".$vID.".mp4";
Run Code Online (Sandbox Code Playgroud)
上面显示了我尝试的尝试,以便我可以定义videoPath.我尝试修改前的原始脚本 - …
youtube-data-api ×10
youtube-api ×7
youtube ×6
android ×1
ios ×1
java ×1
javascript ×1
php ×1
post ×1
swift ×1
xcode ×1