【发布时间】:2018-01-13 10:48:10
【问题描述】:
我正在使用 YouTube API 为我的 YouTube 频道创建一个应用。我的一些视频有一个 maxres 缩略图,但其中一些没有。如果视频出现在我正在显示它们的 tableview 中,并且没有 maxres 缩略图,则应用程序崩溃。如果该视频有 maxres 缩略图,我想告诉 API 使用 maxres 缩略图,但如果没有,则只使用高的缩略图。这是我的代码。
Alamofire.request("https://www.googleapis.com/youtube/v3/search", parameters: ["part":"snippet","maxResults":50,"channelId":CHANNEL_ID,"playlistId":UPLOADS_PLAYLIST_ID,"q":searchText,"type":"video","key":API_KEY], encoding: URLEncoding.default, headers: nil).responseJSON { (response) in
if let JSON = response.result.value {
if let dictionary = JSON as? [String: Any] {
var arrayOfVideos = [Video]()
guard let items = dictionary["items"] as? NSArray else { return }
for items in dictionary["items"] as! NSArray {
print("//Printing Video\n\(items)")
// Create video objects off of the JSON response
let videoObj = Video()
videoObj.videoID = (items as AnyObject).value(forKeyPath: "id.videoId") as! String
videoObj.videoTitle = (items as AnyObject).value(forKeyPath: "snippet.title") as! String
videoObj.videoDescription = (items as AnyObject).value(forKeyPath: "snippet.description") as! String
videoObj.videoThumbnailUrl = (items as AnyObject).value(forKeyPath: "snippet.thumbnails.maxres.url") as! String // Here I need to tell the API to use the maxres thumbnail if there is one.
arrayOfVideos.append(videoObj)
}
似乎 API 甚至没有在寻找 maxres 缩略图。它只显示高、中和默认值。但是,每当我使用 playlistItems 时,它都会显示 maxres 缩略图。嗯……
【问题讨论】:
标签: ios swift youtube youtube-api alamofire