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

零、所用环境

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) 的使用)