【问题标题】:IOS - Check if Youtube Video exists using Youtube APIIOS - 使用 Youtube API 检查 Youtube 视频是否存在
【发布时间】:2015-10-08 02:27:27
【问题描述】:

我已经搜索但找不到任何关于如何使用 youtube api 和 Objective-c 检查 youtube 视频是否存在的文章如何在代码中完成?

编辑

我已经尝试过了,但我不断从 youtube 收到错误 400:

GDataQueryYouTube * query = [[GDataQueryYouTube alloc] init];

        query.feedURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://www.googleapis.com/youtube/v3/videos?id=%@", textFieldYoutube.text]];

        GDataServiceGoogleYouTube * service = [[GDataServiceGoogleYouTube alloc] init];

        service.userAgent = @"xxx";

        [service fetchFeedWithQuery:query
              completionHandler:^(GDataServiceTicket *ticket, GDataFeedBase *feed, NSError *error)
         {
             if(!error)
             {
             NSArray * entries = feed.entries;

             if(entries.count)
             {
                 GDataEntryYouTubeVideo * firstVideo = entries[0];
             }
             }

 }];

【问题讨论】:

    标签: ios objective-c youtube-data-api


    【解决方案1】:

    你应该请求这个 URL

    https://www.googleapis.com/youtube/v3/videos?part=status&id=%@&key=%@,yourVideoId,yourYoutubeAPIKey
    

    请求此 URL 后,您将收到一些 json 响应,例如

        2016-08-10 11:14:44.157 YourApp[10127:86552] {
        etag = "\"I_8xdZu766_FSaexEaDXTIfEWc0/rBQu-ew0vFUVDl87HWqheTjFeZ4\"";
        items =     (
                    {
                etag = "\"I_8xdZu766_FSaexEaDXTIfEWc0/qO4hLAd6uXnb116ECPtCa2RwNxM\"";
                id = zhDsNTmoENc;
                kind = "youtube#video";
                status =             {
                    embeddable = 1;
                    license = youtube;
                    privacyStatus = public;
                    publicStatsViewable = 1;
                    uploadStatus = processed;
                };
            }
        );
        kind = "youtube#videoListResponse";
        pageInfo =     {
            resultsPerPage = 1;
            totalResults = 1;
        };
    }
    
    2016-08-10 11:14:44.153 YourApp[10127:86568] {
    etag = "\"I_8xdZu766_FSaexEaDXTIfEWc0/OWcvT3ot9zyYa1s4P5GWh8yMPIQ\"";
    items =     (
                {
            etag = "\"I_8xdZu766_FSaexEaDXTIfEWc0/NpmRcx9OpHgA2LoHqiki1KznNHc\"";
            id = HV4JYMQTsOU;
            kind = "youtube#video";
            status =             {
                embeddable = 1;
                license = youtube;
                privacyStatus = public;
                publicStatsViewable = 1;
                rejectionReason = length;
                uploadStatus = rejected;
            };
        }
    );
    kind = "youtube#videoListResponse";
    pageInfo =     {
        resultsPerPage = 1;
        totalResults = 1;
    };
    

    }

    这是来自 2 个视频的响应 json
    您将在 2 个 json 中看到,不同的是 uploadStatus(一个是 processed,一个是 rejected)。
    此字段将让您知道哪些 youtube 视频可用。 uploadStatus 有 5 个值:

    已删除、失败、已处理、已拒绝、已上传

    NSString *videoStatus = [responseJson[@"items"] objectAtIndex:0][@"status"][@"uploadStatus"];
    
    if([videoStatus isEqualToString:@"deleted"] || [videoStatusisEqualToString:@"failed"] || [videoStatus isEqualToString:@"rejected"]){
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 2016-11-18
      • 2020-07-13
      • 2016-02-26
      • 2012-11-10
      • 2020-07-11
      • 2022-10-06
      相关资源
      最近更新 更多