python并行下载bilibili视频

假如没有python环境

也可以直接 下载exe
这个我已经打包好exe文件。直接输入BV号即可

通过pip安装

须知您务必使用版本3的 pip:

pip3 install you-get
pip install --upgrade requests

Git clone

不常使用Python,作为开发者,也请使用此方法

 git clone git://github.com/soimort/you-get.git
import os
from multiprocessing.dummy import Pool as ThreadPool
import requests
import multiprocessing
from you_get import common

global output_dir_down

def process_down(url):
    # print(url)
    common.any_download(url=url, info_only=False, output_dir=output_dir_down, merge=True,ext="mp4")


def url_all_list(parent_url, total):
    url_list = []
    if total > 1:
        total = total + 1
        for i in range(1, total):
            url = "{}?p={}".format(parent_url, i)
            url_list.append(url)
    if total == 1:
        url_list.append(parent_url)
    return url_list


def get_video_count(url):
    headers  ={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4302.0 Safari/537.36'}
    req = requests.get(url,headers =headers ).text
    start_with = req.find('videos')
    end_with = req.find(',"tid')
    result = req[start_with:end_with]
    video_count = result.split(":")[1]
    return video_count;


if __name__ == "__main__":
    multiprocessing.freeze_support()
    # 视频url地址
    bv_num = input("请输入BV号 (例如:BV1aW41187Qw ) :")
    output_dir_down = input("输出目录为: ")
    parent_url = "https://www.bilibili.com/video/{}".format(bv_num)
    parallel_count = int(input("需要同时几个文件同时下载 (建议1 - 10 之间):"))
    if parallel_count < 1 and parallel_count > 100 :
        parallel_count=1
    # 视频总数量
    total = int(get_video_count(parent_url))
    print("当前视频总数量:",total)
    file_list = url_all_list(parent_url, total)
    print("当前并行数量:",parallel_count)
    pool = ThreadPool(parallel_count)
    pool.map(process_down, file_list)
    pool.close()
    pool.join()



打包exe命令:

把python 代码拖到 Python\Python37\Lib\site-packages 目录下执行

pip install pyinstaller
pyinstaller -F -i F:\图标.ico down-py.py --hidden-import you_get.extractors
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值