美文网首页
视频下载 & you-get、celery (redis) 的使

视频下载 & you-get、celery (redis) 的使

作者: 仙女滢宝的李先生 | 来源:发表于2019-04-25 15:18 被阅读0次

    零、所用环境

    macOS 10.14

    Python 3.6

    pip3 19.0.3 (Python 3.6)

    celery 4.3.0

    redis 3.2.1

    you-get 0.4.1270

    一、安装&升级相关库

    1、安装celery,redis,you-get

    pip3 install celery==4.3.0

    pip3 install redis==3.2.1

    pip3 install you-get==0.4.1270

    备注:Mac下,可以brew install you-get

    2、升级相关包

    pip3 install --upgrade [包名]

    如:pip3 install --upgrade you-get

    二、you-get的使用

    Github:https://github.com/soimort/you-get

    1、查看视频所有可用的质量和格式(选择清晰度)

    you-get -i [视频链接]

    如:you-get -i 'https://www.bilibili.com/video/av50233794'

    注:列表顶部那个是默认下载的

    下载其他清晰度,通过you-get --format=dash-flv720 [视频链接]

    如:you-get --format=dash-flv720 'https://www.bilibili.com/video/av50233794'

    2、暂停并恢复下载

    可以使用Ctrl + C来中断下载。

    临时.download文件保存在输出目录中。下次you-get使用相同的参数运行时,下载进度将从上一个会话恢复。如果文件被完全下载(临时.download扩展已经消失),you-get将跳过下载。

    要强制重新下载,请使用--force/ -f选项。(警告:这样做会覆盖任何具有相同名称的现有文件或临时文件!)

    3、设置文件输出的路径和名称

    a. 设置输出路径(使用--output-dir / -o选项)

    you-get  -o  [路径]  [视频链接]

    you-get  --output-dir  [路径]  [视频链接]

    b. 设置输出名称(使用--output-filename / -O选项)

    you-get  -O  [名称]  [视频链接]

    you-get  --output-filename [名称]  [视频链接]

    c. 同时设置输出路径和名称

    you-get -o [路径] -O [文件名] [视频链接]

    注:重命名可以临时解决编码问题;可以指定文件下载到指定目录。

    4、代理设置(通过--http-proxy / -x选项)

    you-get  -x  IP:PORT  [URL]

    you-get  --http-proxy  127.0.0.1:8087  [URL]

    如you-get -x 127.0.0.1:8087 'https://www.bilibili.com/video/av50233794'

    5、开启debug模式(通过--debug选项)

    you-get  [URL]  --debug

    开启debug模式后,可以非常详细的看到下载过程和完整报错信息。

    如you-get  'https://www.bilibili.com/video/av50233794'  --debug

    6、下载视频列表(通过 --playlist)

    如 you-get  --playlist  'https://www.bilibili.com/video/av49691072?from=search&seid=12570988140525127631' 

    则按顺序一个个下载视频(下载完一集,自动下载下一集)

    7、支持下载的视频网站

    亲测哔哩哔哩,腾讯视频,优酷ok(更多见官网介绍👇)

    8、更多

    如观看视频,加载cookie等

    详见Github:https://github.com/soimort/you-get

    二、Celery (redis) 的使用等

    1、启动celery服务

    在tasks所在目录(一般放在项目根目录)输入

    celery -A tasks worker --loglevel=info

    注:loglevel可以是debug 、info 、warning 、error 、critical。

    2、关闭celery作业

    celery -A tasks purge

    yes

    3、杀死未关闭的celery进程(可选)

    ps aux | grep celery

    kill -9 进程号1 进程号2……

    4、Python celery脚本

    """tasks.py

    from celery import Celery

    import os

    app = Celery('tasks', broker='redis://localhost:6379/0')

    @app.task

    def download(file_path=None, url=None):

        os.system("you-get -o ./%s '%s'" % (file_path, url,))

    """

    注:通过python的os模块在python脚本中执行linux命令(亦可通过其他模块/方法,测试的代码保存在temp.py中,后面删除了temp.py后,在之前的版本也找不到了,倒是发现了gitee对于代码的保护)。

    """test.py

    from tasks import download

    def my_test():

        download.delay(file_path=?, url=?)

    """

    注:test.py和tasks.py导包时,确保从同一父目录(运行文件所在父目录)下导包!

    相关文章

      网友评论

          本文标题:视频下载 & you-get、celery (redis) 的使

          本文链接:https://www.haomeiwen.com/subject/nqxzgqtx.html