python 基于you-get库二次开发 网页视频下载

you-get库

You-Get是一个很小的命令行实用程序,用于从 Web 下载媒体内容(视频、音频、图像)。

以下是您可能想要使用它的原因:

你喜欢在互联网上的东西,只是想下载他们为自己的乐趣。
您从计算机在线观看您最喜爱的视频,但禁止保存这些视频。
您希望删除任何闭源技术或专有 JavaScript 代码,并禁止像 Flash 这样在计算机上运行。
你是黑客文化和自由软件的拥护者。
有什么可以为你做的:you-get

从热门网站(如 YouTube、优酷、b站等)下载视频/音频。
在媒体播放器中流式传输在线视频。没有网络浏览器,没有更多的广告。
通过刮取网页下载(感兴趣的)图像。
下载任意的非 HTML 内容,即二进制文件。

安装you-get库

pip install -i  https://pypi.doubanio.com/simple/ you-get

原理

you-get 使用方法比较简单,可使用命令行工具直接进行下载。因此可以使用python的 os 库来模拟命令。来简化you-get使用方法。并实现简单的交互信息。
具体的支持网站可参考you-get官方文档。https://github.com/soimort/you-get

function.py

# 导入库
import sys
from you_get import common as you_get
import you_get.extractors

# 第一提示信息
def tips2():
    print("-" * 25)
    print("1:下载默认清晰度视频")
    print("2:下载默认清晰度列表视频")
    print("3:下载指定清晰度视频")
    print("4:下载指定清晰度列表视频")
    print("-" * 25)

# 输入网址
def get_url():
    url = input(r"视频网址:")
    return url

# 定义函数,负责查询视频信息
def query_video(url):
    sys.argv = ['you-get', '-i', url]
    you_get.main()

# 自定义存储位置下载默认清晰度视频
def direct_download(url):
    directory = input(r"输入存储地址:")
    sys.argv = ['you-get', '-o', directory, url]
    you_get.main()

# 自定义存储位置下载默认清晰度列表视频
def direct_download_list(url):
    directory = input(r"输入存储地址:")
    sys.argv = ['you-get', '-o', directory,  '--playlist',url]
    you_get.main()

# 自定义存储位置下载指定清晰度视频
def appoint_download(url):
    video_format='--format='+input("输入视频格式:")
    directory =input(r"输入存储地址:")
    sys.argv = ['you-get', '-o', directory, video_format, url]
    you_get.main()

# 自定义存储位置下载指定清晰度列表视频
def appoint_download_list(url):
    video_format='--format='+input("输入视频格式:")
    directory = input(r"输入存储地址:")
    sys.argv = ['you-get', '-o', directory, '--format=', video_format, '--playlist',url]
    you_get.main()

video_download.py

from function import *
"""导入全部模块"""

# 输入必须的url,并显示视频信息
url=get_url()
query_video(url)

# 展示提示信息
tips2()

# 获得用户输入的值作为判断
num = int(input("输入对应序号:"))

# 判断并实现相应功能
if num == 1:
    direct_download(url)
if num == 2:
    direct_download_list(url)
if num == 3:
    appoint_download(url)
if num == 4:
    appoint_download_list(url)

# 程序结束
input("任务完成,按任意键退出:")

使用方法

说明:因原版本提示信息有-,会误以为是负号,所以代码中去掉-,选择对应的功能输入1、2、3、4,而不是-1,-2,-3,-4。

打开工具,将视频链接粘贴至光标处,按下回车。

此时工具将获得所要下载的视频信息,并有四项功能可选。

软件所默认的清晰度一般为1080P高清,如果是单个视频下载可输入1或3按下回车,先以默认清晰度为例:

接下来要求输入地址,首先打开我的电脑,选择好自己想要保存的文件夹,比如我想放在E盘的temp目录下,鼠标点击所在位置,按下ctrl+c快捷键复制地址。

将地址ctrl+v复制到工具内并按回车,就开始自动下载了,下载完成后可按任意键退出程序。

接下来说明一下指定清晰度方法,在这里选择3,比如我要下载flv格式的480P视频,就输入flv480,再输入好地址后按下回车,开始下载。

注意,如果需要下载mp4格式720p应输入 dash-flv720 中间的横杠为英文-。

列表视频下载方法同理,仅有链接中存在列表才可用这种方法。
如果想停止下载,可按快捷键 ctrl+c 或直接关闭程序。

注意事项

有些视频具有独立版权,下载的视频仅可用于学习,不要进行商用。

留下评论

您的电子邮箱地址不会被公开。