首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析所有可能的YouTube urls

解析所有可能的YouTube urls
EN

Stack Overflow用户
提问于 2012-01-11 12:38:57
回答 4查看 1.8K关注 0票数 2

我正在寻找的所有功能,一个YouTube网址可以有?

代码语言:javascript
运行
复制
http://www.youtube.com/watch?v=6FWUjJF1ai0&feature=related

到目前为止,我已经看到了feature=relmfu,related,fvst,fvwrel。有没有这方面的清单。此外,我的最终目标是从所有可能的youtube urls中提取视频id (6FWUjJF1ai)。我该怎么做呢?这似乎很难。有没有人已经这么做了?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-11 12:50:43

您可以使用urlparse从url获取查询字符串,然后使用parse_qs从查询字符串获取视频id。

票数 6
EN

Stack Overflow用户

发布于 2012-01-11 16:48:20

不过,为你的assistance....the解决方案编写的代码纯粹是弗兰克的。

代码语言:javascript
运行
复制
import urlparse as ups
m = ups.urlparse('http://www.youtube.com/watch?v=6FWUjJF1ai0&feature=related')
print ups.parse_qs(m.query)['v']
票数 3
EN

Stack Overflow用户

发布于 2017-09-23 10:59:04

从下面的答案https://stackoverflow.com/a/43490746/8534966中,我运行了55个不同的测试用例,它能够得到51个匹配。参见my tests

所以我写了一些if else代码来修复它:

代码语言:javascript
运行
复制
# Get YouTube video ID
if "watch%3Fv%3D" in youtube_url:
    # e.g.: https://www.youtube.com/attribution_link?a=8g8kPrPIi-ecwIsS&u=/watch%3Fv%3DyZv2daTWRZU%26feature%3Dem-uploademail
    search_pattern = re.search("watch%3Fv%3D(.*?)%", youtube_url)
    if search_pattern:
        youtube_id = search_pattern.group(1)
elif "watch?v%3D" in youtube_url:
    # e.g.: http://www.youtube.com/attribution_link?a=JdfC0C9V6ZI&u=%2Fwatch%3Fv%3DEhxJLojIE_o%26feature%3Dshare
    search_pattern = re.search("v%3D(.*?)&format", youtube_url)
    if search_pattern:
        youtube_id = search_pattern.group(1)
elif "/e/" in youtube_url:
    # e.g.: http://www.youtube.com/e/dQw4w9WgXcQ
    youtube_url += " "
    search_pattern = re.search("/e/(.*?) ", youtube_url)
    if search_pattern:
        youtube_id = search_pattern.group(1)
else:
    # All else.
    search_pattern = re.search("(?:[?&]vi?=|\/embed\/|\/\d\d?\/|\/vi?\/|https?:\/\/(?:www\.)?youtu\.be\/)([^&\n?#]+)",
                               youtube_url)
    if search_pattern:
        youtube_id = search_pattern.group(1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8814227

复制
相关文章

相似问题

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