如何获取YouTube频道名称?
我在YouTube视频中搜索到了其他频道的名称,但没有找到任何内容 就是如何获取YouTube频道名称?,youtube,youtube-api,youtube-channels,Youtube,Youtube Api,Youtube Channels,我在YouTube视频中搜索到了其他频道的名称,但没有找到任何内容 就是 我当前想从a获取频道名称,我只有URL,如何获取频道名称?您可以从URL提取视频id,然后发出HTTP get请求: 其中dQw4w9WgXcQ是您感兴趣的视频id。这将返回一个JSON响应,在author字段中显示频道名称(单击链接查看示例) 有关更多信息,请参阅和YouTube API文档的其余部分 请参阅,例如,了解从YouTube URL获取视频id的一些方法。您可以使用 URL中“”之后的最新部分是您的视频ID
我当前想从a获取频道名称,我只有URL,如何获取频道名称?您可以从URL提取视频id,然后发出HTTP get请求: 其中
dQw4w9WgXcQ
是您感兴趣的视频id。这将返回一个JSON响应,在author
字段中显示频道名称(单击链接查看示例)
有关更多信息,请参阅和YouTube API文档的其余部分
请参阅,例如,了解从YouTube URL获取视频id的一些方法。您可以使用 URL中“”之后的最新部分是您的视频ID 只需使用设置part=“snippet”执行一次操作。然后你可以抓住回应 请求将是: 获取{YOUR_API_KEY} 以你为例 您可以随时使用这些工具进行尝试
让你开始。
对于完全失去的新手:考虑一个示例函数,它有助于理解获取、解析、显示等整个循环,并将YouTube频道的视频具体地带到您的TabLeVIEW中。我不是在这里写tableview部分
-(void)initiateRequestToYoutubeApiAndGetChannelInfo
{
NSString * urlYouCanUseAsSample = @"https://www.googleapis.com/youtube/v3/search?key={YOUR_API_KEY_WITHOUT_CURLY_BRACES}&channelId={CHANNEL_ID_YOU_CAN_GET_FROM_ADDRESS_BAR_WITHOUT_CURLY_BRACES}&part=snippet,id&order=date&maxResults=20";
NSURL *url = [[NSURL alloc] initWithString: urlYouCanUseAsSample];
// Create your request
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// Send the request asynchronously remember to reload tableview on global thread
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
// Callback, parse the data and check for errors
if (data && !connectionError) {
NSError *jsonError;
NSDictionary *jsonResult = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError];
if (!jsonError) {
// better put a breakpoint here to see what is the result and how it is brought to you. Channel id name etc info should be there
NSLog(@"%@",jsonResult);
/// separating "items" dictionary and making array
//
id keyValuePairDict = jsonResult;
NSMutableArray * itemList = keyValuePairDict[@"items"];
for (int i = 0; i< itemList.count; i++) {
/// separating VIDEO ID dictionary from items dictionary and string video id
id v_id0 = itemList[i];
NSDictionary * vid_id = v_id0[@"id"];
id v_id = vid_id;
NSString * video_ID = v_id[@"videoId"];
//you can fill your local array for video ids at this point
// [video_IDS addObject:video_ID];
/// separating snippet dictionary from itemlist array
id snippet = itemList[i];
NSDictionary * snip = snippet[@"snippet"];
/// separating TITLE and DESCRIPTION from snippet dictionary
id title = snip;
NSString * title_For_Video = title[@"title"];
NSString * desc_For_Video = title[@"description"];
//you can fill your local array for titles & desc at this point
// [video_titles addObject:title_For_Video];
// [video_description addObject:desc_For_Video];
/// separating thumbnail dictionary from snippet dictionary
id tnail = snip;
NSDictionary * thumbnail_ = tnail[@"thumbnails"];
/// separating highresolution url dictionary from thumbnail dictionary
id highRes = thumbnail_;
NSDictionary * high_res = highRes[@"high"];
/// separating HIGH RES THUMBNAIL IMG URL from high res dictionary
id url_for_tnail = high_res;
NSString * thumbnail_url = url_for_tnail[@"url"];
//you can fill your local array for titles & desc at this point
[video_thumbnail_url addObject:thumbnail_url];
}
// reload your tableview on main thread
//[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
performSelectorOnMainThread:@selector(reloadInputViews) withObject:nil waitUntilDone:NO];
// you can log all local arrays for convenience
// NSLog(@"%@",video_IDS);
// NSLog(@"%@",video_titles);
// NSLog(@"%@",video_description);
// NSLog(@"%@",video_thumbnail_url);
}
else
{
NSLog(@"an error occurred");
}
}
}];
}
-(无效)向您的TubeAppiandGetChannel信息发起请求
{
NSString*URLYOUCANSAMPLE=@”https://www.googleapis.com/youtube/v3/search?key={YOUR_API_KEY_不带花括号}&channelId={CHANNEL_ID_你可以从没有花括号的地址栏中获取}&part=snippet,ID&order=date&maxResults=20”;
NSURL*url=[[NSURL alloc]initWithString:urlYouCanUseAsSample];
//创建您的请求
NSURLRequest*request=[nsurlRequestRequestWithURL:url];
//异步发送请求记住在全局线程上重新加载tableview
[NSURLConnection sendAsynchronousRequest:请求队列:[[NSOperationQueue alloc]init]completionHandler:^(NSURResponse*response,NSData*data,NSError*connectionError){
//回调,解析数据并检查错误
if(数据和连接错误){
n错误*jsonError;
NSDictionary*jsonResult=[NSJSONSerialization JSONObjectWithData:数据选项:NSJSONReadingMutableContainers错误:&jsonError];
如果(!jsonError){
//最好在这里放一个断点,看看结果是什么,以及它是如何带给你的。频道id名称等信息应该在那里
NSLog(@“%@”,jsonResult);
///分离“项”字典并生成数组
//
id keyValuePairDict=jsonResult;
NSMutableArray*itemList=keyValuePairDict[@“items”];
对于(int i=0;i
+1感谢您帮助我解决类似问题。它起作用了。我不敢相信youtube API-3没有更简单的方法,但是。。。它起作用了。。