2017-08-11 51 views

回答

0

雨燕3.0

您可以从字符串URL获取视频ID为子像下面。

let url = URL(string: "https://www.youtube.com/watch?v=iTcq6L-PaDQ")!.absoluteString 

let Id = url.substring(from: url.range(of: "?v=")!.upperBound) 
1

你可以按照这个例子

let url = ___Your_URL_HERE____ 
    let path = String(contentsOf: url) 
    let startIndex = path.index(path.startIndex, offsetBy: 32) //32 because 'https://www.youtube.com/watch?v=' is fixed from youtube 
    let videoid = path.substring(from: startIndex) 
    print(videoid) 
+0

它显示错误为“类型的值 'URL' 没有成员'索引'“。我该如何解决这个问题? @ Umesh Verma – Tamannah

+0

如果你有url,那么先将它转换为字符串。检查我更新的答案 –

0

您可以通过分开URL字符串“? v =“这对任何YouTube视频都很常见。

let path = URL(string: "https://www.youtube.com/watch?v=iTcq6L-PaDQ") 
let url = path!.absoluteString 
let array = url.components(separatedBy: "?v=") 
let id = array[1] 
NSLog("video id: %@.", id) 
+0

它显示错误为“值的类型'URL'没有成员”组件“。我怎样才能解决这个问题?@ Rahul Kumar – Tamannah

+0

转换URL类型为String,使用URL.absoluteString,你可以得到String键入 –

+0

编辑了上面的代码 –

1

URLComponents/URLQueryItem

if let urlComponents = URLComponents(string:"https://www.youtube.com/watch?v=iTcq6L-PaDQ"), 
    let queryItem = urlComponents.queryItems?.first(where: {$0.name == "v"}) { 
    print(queryItem.value!) 
} 

或作为功能

func queryValue(for name : String, of url: URL) -> String? 
{ 
    guard let urlComponents = URLComponents(url:url, resolvingAgainstBaseURL:false), 
     let queryItem = urlComponents.queryItems?.first(where: {$0.name == name}) else { return nil } 
    return queryItem.value 
} 

queryValue(for: "v", of: URL(string:"https://www.youtube.com/watch?v=iTcq6L-PaDQ")!)