首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取YouTube字符串的视频ID

如何获取YouTube字符串的视频ID
EN

Stack Overflow用户
提问于 2015-05-26 22:13:38
回答 6查看 7.3K关注 0票数 4

(XCode 6.3.2,Swift 1.2)

在研究了整个晚上的互联网之后,我已经知道这不是那么容易做到的。

我只想得到一个YouTube链接的视频ID。所以"https://www.youtube.com/watch?v=ABCDE“中的"ABCDE”

到目前为止我得到的是:

代码语言:javascript
复制
var url = "https://www.youtube.com/watch?v=ABCDE"
let characterToFind: Character = "="
let characterIndex = find(url, characterToFind)
println(characterIndex)
url.substringFromIndex(advance(url.startIndex, characterIndex))

Prinln产出:可选(31)

是的,但我不能用这个,因为它不是索引。

XCode还为最后一行声明:调用中参数#3缺少参数参数

我也不知道substringFromIndex的第三个参数应该是什么。

事先非常感谢!

EN

回答 6

Stack Overflow用户

发布于 2015-05-26 23:57:53

您可以使用NSURL查询属性如下:

Xcode 8.3.1·Swift 3.1

代码语言:javascript
复制
let link = "https://www.youtube.com/watch?v=ABCDE"
if let videoID = URL(string: link)?.query?.components(separatedBy: "=").last {
    print(videoID) // "ABCDE"
}

另一种选择是使用URLComponents

代码语言:javascript
复制
let link = "https://www.youtube.com/watch?v=ABCDE"
if let videoID = URLComponents(string: link)?.queryItems?.filter({$0.name == "v"}).first?.value {
    print(videoID) // "ABCDE"
}

Swift 1.x

代码语言:javascript
复制
let link = "https://www.youtube.com/watch?v=ABCDE"
if let videoID = NSURL(string: link)?.query?.componentsSeparatedByString("=").last {
    println(videoID) // "ABCDE"
}
票数 4
EN

Stack Overflow用户

发布于 2015-11-23 17:30:40

在您的情况下,不需要像其他答案那样创建NSURL。只需使用:

代码语言:javascript
复制
var url = "https://www.youtube.com/watch?v=ABCDE"
if let videoID = url.componentsSeparatedByString("=").last {
    print(videoID)
}
票数 4
EN

Stack Overflow用户

发布于 2017-04-06 06:25:46

Swift 3+版本:

代码语言:javascript
复制
var url = "https://www.youtube.com/watch?v=ABCDE"
if let videoID = url.components(separatedBy: "=").last {
    print(videoID)
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30469838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档