计算YouTube播放列表中的视频


12

挑战

给定一个Youtube播放列表,输出其中的视频数量。

输入输出

播放列表将作为URL给出;例如,https://www.youtube.com/playlist?list=PL_3jnZNPYn7qUatgDYBS5NShkfXoehSRC((这是一个朋友发送给我的播放列表,试图让我听K-Pop,因为她迷恋它,而我不喜欢它:P)

播放列表的链接的格式为 https://www.youtube.com/playlist?list=<id>。输入的是URL,而不是ID。

输出将是一个整数,指示此播放列表中有多少个视频。您既可以输出视频总数,也可以输出未删除视频的数量,以适合您的情况为准。

测试用例

https://www.youtube.com/playlist?list=PL_3jnZNPYn7qUatgDYBS5NShkfXoehSRC -> 12
https://www.youtube.com/playlist?list=PLIEbITAtGBebWGyBZQlkiMXwt30WqG9Bd -> 114 OR 1

随时添加更多测试用例。


6
寻求让人们成为您的图书馆来统计YouTube播放列表中的视频的最偷偷摸摸的方式表示感谢。
Stevoisiak

2
我只是抵制了添加人力播放列表的冲动。或“ Dank Memes”播放列表。
CAD97

离题:我会更感兴趣地列出YouTube频道必须提供的所有视频。源代码似乎并不自然地包含此内容。
phil294

@Blauhirn这是一个有趣的想法。也许您可以对此提出挑战。
HyperNeutrino

Answers:


9

05AB1E,22字节

假设URL传递没有https://

码:

.w’®Ã-ƒ¢’¡`"<li>"¡2è#¬

使用05AB1E编码。由于可以访问互联网,因此无法在线尝试。

说明:

.w                       # Receive implicit input and read all data from the url
  ’®Ã-ƒ¢’¡               # Split on the string "header-details"
          `              # Flatten once which leaves the last element on top of the stack
           "<li>"¡       # Split on the string "<li>"
                  2è     # Get the third element
                    #    # Split on spaces
                     ¬   # Retrieve the first element 

这是在命令行中运行时得到的:

在此处输入图片说明


1
那是什么样的命令行?我没看过
Okx

2
@Okx It's cmder
Adnan

它是如何工作的?
Stevoisiak

@StevenVascellaro感谢您的提醒,我添加了一个解释。
阿德南

6

Scala 2.12,138字节

print("""<li>.*?</li><li>(\d+).*?</li>""".r.findFirstMatchIn(scala.io.Source.fromURL(args(0),"utf-8").getLines.mkString("")).get.group(1))

将其保存到something.scala并由运行scala something.scala {url}

在此处输入图片说明


6

JS(ES6),68个字节

x=>fetch(x).then(x=>x.text()).then(x=>alert(x.match(/(\d+) vi/)[1]))

将其粘贴到youtube.com上的控制台中以尝试:

(x=>fetch(x).then(x=>x.text()).then(x=>alert(x.match(/(\d+) vi/)[1])))(prompt("Enter the URL"))

6

MATL,15字节

感谢Hyper Neutrino发现错误,现已纠正。

Xi'wner">\n'XXn

输入是用单引号引起来的字符串。输出是未删除视频的数量。

这是两个测试用例的示例。截至2017年6月13日,播放列表中未删除的视频数量分别为12和1。

在此处输入图片说明

怎么运行的

Xi          % Read string containing URL and get contents as a string
'wner">\n'  % Push this string
XX          % Regexp matching. Gives a cell array with the matched strings
n           % Number of elements. Implicitly display

哈,聪明的正则表达式!
rubik '17

您正在使用什么来捕获屏幕?
马特

@Matt LICEcap for Windows
Luis

问题:如果我创建一个名为的播放列表"wner"怎么办?还能用吗?
HyperNeutrino

@HyperNeutrino好点。我已经改正了。顺便说一句,在第一列表中的视频数量已经改变
路易斯Mendo

4

bash + curl + gnu grep,32个字节

最后,让Code Golf成为可能:

curl -s $1|grep -Po \\d+(?= vid)
  • 使用curl -s到下载没有任何额外的输出。
  • 将输出管道传输到grep(perl regex),后者只会输出匹配项
    • 匹配以“ vid”开头的第一个数字

这是从我实际的做法出发的。


不错的第一次提交!
HyperNeutrino

3

PowerShell,55字节

"$(iwr "$args")"-match'(?s)(\d+) vid'>$null;$matches[1]

浏览到该站点。将对象转换为html源字符串。解析出带有正则表达式“ vid”之前的数字的字符串。

逻辑适用于两个测试用例。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.