【问题标题】:How youtube-dl get video's real url on bilibili?youtube-dl 如何在 bilibili 上获取视频的真实 url?
【发布时间】:2020-03-31 23:50:27
【问题描述】:

打开https://github.com/ytdl-org/youtube-dl/tree/master/youtube_dl/extractor,bilibili.py,我得到bilibili.py源代码,它没有任何帮助。
对于像我这样的新手来说,一遍又一遍地看bilibili.py's source code是没有用的。
我很难理解 youtube-dl 如何在 bilibili 上获取视频的真实 url?
bilibili.py在bilibili上提取视频真实url的原理是什么?
bilibili.py's source code中有421行,请将bilibili.py简化为getUrlFromBilibili等短单函数。

url = "https://www.bilibili.com/video/av52135588?from=search&seid=5625791913889140593"
real_url = getUrlFromBilibili(url)
print(real_url)

请完成getUrlFromBilibili函数,并在其中给出一些cmets来说明获取视频在bilibili上的真实url的原理。

def  getUrlFromBilibili(url):
    #make the function short as soon as possible

【问题讨论】:

  • 该库正在下载网页并使用正则表达式搜索视频网址。
  • lib如何获取真正的url?请给我原理。
  • 在赏金期之前,您已提出问题并且所有答案都适合该问题。在宽限期内您编辑了您的问题,这与之前的问题完全不同。那么对这个问题给出的所有答案都不是答案。请不要再这样做了。这将导致对答案的大量反对票。超过 1500 名信誉用户可以看到这里发生了什么

标签: url extract youtube-dl


【解决方案1】:

看起来您只想获取不带参数的 url 部分。这可以像这样简单地实现。

url = "https://www.bilibili.com/video/av52135588?from=search&seid=5625791913889140593"
real_url = url.split('?')[0]

//real_url = https://www.bilibili.com/video/av52135588

【讨论】:

  • 我相信作者想要从网站url获取真正的VIDEO FILE url。
  • 没有一个真实的视频文件。它由多个动态流式传输的小视频文件组成。
  • wget https://www.bilibili.com/video/av52135588 的输出是什么?
  • @scrapy 它只会下载包含该视频的页面。如果您需要下载实际的视频文件,这是一个复杂的过程,无法简化为单一功能。 youtube-dl 库的全部目的是下载此类文件。
【解决方案2】:

你说过你需要为此使用函数并且需要知道原则。 Bilibili 网站就像一个 youtube。里面有很多视频。您必须进行编程才能从您输入的任何视频网址中获取真实网址。我将展示如何做到这一点。

def  getUrlFromBilibili(url):
    real_url = url[:url.find('?')]
    return real_url;

URL = input("Copy and Paste your Bilibili url = ")
#https://www.bilibili.com/video/av52135588?from=search&seid=5625791913889140593
print("Real url is = ", getUrlFromBilibili(URL))

输出-:

Copy and Paste your Bilibili url = https://www.bilibili.com/video/av52135588?from=search&seid=5625791913889140593

Real url is = https://www.bilibili.com/video/av52135588

现在我要解释这段代码

#Start of the function

def  getUrlFromBilibili(url):      #This the function which we use to store our url
    real_url = url[:url.find('?')] #In here we remove all characters after '?' in your url including '?'
    return real_url;               #After that we return our shorten url 

#End of the function


URL = input("Copy and Paste your Bilibili url")  #In here You can Enter any video url from Bilibili.com

print("Real url is = ", getUrlFromBilibili(URL))         #After all actions shorten url is displaying in here.


重要

如果您只想从此网址获取真实网址 -> https://www.bilibili.com/video/av52135588?from=search&seid=5625791913889140593 您可以使用此代码

def  getUrlFromBilibili(url):
    real_url = url[:url.find('?')]
    return real_url;

print("Real url is = ", getUrlFromBilibili("https://www.bilibili.com/video/av52135588?from=search&seid=5625791913889140593"))

输出-:

Copy and Paste your Bilibili url = https://www.bilibili.com/video/av52135588?from=search&seid=5625791913889140593

Real url is = https://www.bilibili.com/video/av52135588

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-02-06
  • 2016-06-07
  • 1970-01-01
  • 2021-06-26
  • 2012-05-22
  • 2011-03-28
  • 2019-12-07
相关资源
最近更新 更多