如何从 YouTube 频道中获取 URL

How to grep URLs from YouTube channel

根据我的研究,最聪明的方法是使用 API 但是当我使用 cURL 时 可以在输出中找到所有需要的信息,但有点乱。

curl https://www.youtube.com/user/HowdiniGuru/videos | grep "watch?" 

returns 包含视频 url 的所有必需块:

<h3 class="yt-lockup-title "><a class="yt-uix-sessionlink yt-uix-tile-link  spf-link  yt-ui-ellipsis yt-ui-ellipsis-2" dir="ltr" title="Breaking: MLA Sarwan Singh Phillaur resigned from SAD"  aria-describedby="description-id-18618" data-sessionlink="ei=fHsvWKztM8OouALZlJ24Cg&amp;feature=c4-videos-u&amp;ved=CDkQlx4iEwism5ewqLPQAhVDFE4KHVlKB6comxw" href="**/watch?v=fDqv1-kYGPI**">Breaking: MLA Sarwan Singh Phillaur resigned from SAD</a><span class="accessible-description" id="description-id-18618"> - Duration: 43 seconds.</span></h3>

但是苦于只有/watch?零件到达输出。

curl https://www.youtube.com/user/HowdiniGuru/videos | grep "watch?" | cut -f4 -d"=" | grep class | cut -f1 -d'"'

可以完成工作,但效率并不像我想象的那样高。

使用 curl https://www.youtube.com/user/HowdiniGuru/videos | grep -oh "/watch?v[^\"*]\+" 仅匹配 /watch... 部分。

cURL 不是这项工作的正确工具:

lynx -dump -listonly -nonumbers https://www.youtube.com/user/HowdiniGuru/videos |
grep watch

Example