YoutubeのvideoIDからサムネイルの画像URLを取得する
はじめに
iOSでYoutubeの動画を再生する場合youtube-ios-player-helperを使うことになりますが、インサイン再生を行う場合で小さな領域に表示させておくと再生前にサムネイルが綺麗に表示できないことがよくあるのでYoutubeのサムネイルURLを取得できるようなenumを作ってみました。
コード
enum YoutubeThumbnailType {
case `default`
case typeOne
case typeTwo
case typeThree
case mqdefault
case hqdefault
case sddefault
case maxresdefault
func convertURL(id: String) -> URL {
switch self {
case .default: // 120 × 90
return URL(string: "https://i.ytimg.com/vi/\(id)/default.jpg")!
case .typeOne: // 120 × 90
return URL(string: "https://i.ytimg.com/vi/\(id)/1.jpg")!
case .typeTwo: // 120 × 90
return URL(string: "https://i.ytimg.com/vi/\(id)/2.jpg")!
case .typeThree: // 120 × 90
return URL(string: "https://i.ytimg.com/vi/\(id)/3.jpg")!
case .mqdefault: // 320 × 180
return URL(string: "https://i.ytimg.com/vi/\(id)/mqdefault.jpg")!
case .hqdefault: // 480 × 360
return URL(string: "https://i.ytimg.com/vi/\(id)/hqdefault.jpg")!
case .sddefault: // 640 × 480
return URL(string: "https://i.ytimg.com/vi/\(id)/sddefault.jpg")!
case .maxresdefault: // 1920x1080
return URL(string: "https://i.ytimg.com/vi/\(id)/maxresdefault.jpg")!
}
}
}
こんな感じでvideoIDを指定することでサムネイルのURLが返ってきます
YoutubeThumbnailType.maxresdefault.convertURL(id: "xxxxx")