【Python工具】Python实现一款支持各大平台的视频下载器 | 附源码

本文介绍了一款基于Python开发的视频下载器,支持多个平台,包括哔哩哔哩和抖音等。该下载器使用了requests、tqdm等模块,并提供了环境搭建和效果展示。用户可通过输入视频链接直接下载到指定文件夹。
摘要由CSDN通过智能技术生成

相关文件

想学Python的小伙伴可以关注小编的公众号【Python日志】
有很多的资源可以白嫖的哈,不定时会更新一下Python的小知识的哈!!
需要源码的小伙伴可以在公众号回复视频下载器

简介

一款简单易用的视频下载器,目前支持的平台如下:在这里插入图片描述

开发环境

Python版本:3.7.8
相关模块:
requests模块;
tqdm模块;
pyfreeproxy模块;
pyecharts模块;
以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

效果展示

直接输入我们的一个视频链接就可以直接下载到文件夹downloaded中
在这里插入图片描述
复制哔哩哔哩视频链接

b站视频链接

https://www.bilibili.com/video/BV1si4y1y76f?spm_id_from=333.999.0.0

在这里插入图片描述
在这里插入图片描述
然后就可以直接播放我们的视频啦!!

代码实现过程

主代码


import sys
import copy
import json
import click
if __name__ == '__main__':
    from modules import *
    from __init__ import __version__
else:
    from .modules import *
    from .__init__ import __version__


'''basic info'''
BASICINFO = '''************************************************************
Function: 视频下载器 V%s
微信公众号: Python日志
操作帮助:
    输入r: 重新初始化程序(即返回主菜单)
    输入q: 退出程序
视频保存路径:
    当前路径下的%s文件夹内
************************************************************'''


'''视频下载器'''
class videodl():
    def __init__(self, configpath=None, config=None, **kwargs):
        assert configpath or config, 'configpath of config should be given...'
        self.config = loadConfig(configpath) if config is None else config
        self.logger_handle = Logger(self.config['logfilepath'])
        self.supported_sources = self.initializeAllSources()
    '''非开发人员外部调用'''
    def run(self):
        print(BASICINFO % (__version__, self.config.get('savedir')))
        while True:
            # 视频链接输入
            user_input = self.dealInput('请输入视频链接: ')
            # 判断视频链接类型是否支持解析下载
            source = self.findsource(user_input)
            if source is None:
                self.logger_handle.warning('暂不支持解析视频链接: %s...' % user_input)
                continue
            # 实例化
            client = source(self.config, self.logger_handle)
            # 视频链接解析
            videoinfos = client.parse(user_input)
            # 视频下载
            client.download(videoinfos)
    '''判断视频源'''
    def findsource(self, url):
        for key, source in self.supported_sources.items():
            if source.isurlvalid(url): return source
        return None
    '''初始化所有支持的搜索/下载源'''
    def initializeAllSources(self):
        supported_sources = {
   
            'ted': Ted,
            'cntv': CNTV,
            'mgtv': MGTV,
            'migu': Migu,
            'pipix': Pipix,
            'acfun': AcFun,
            'zhihu': Zhihu,
            'xigua': Xigua,
            'iqiyi': Iqiyi,
            'douyin': Douyin,
            'haokan': Haokan,
            'bilibili': Bilibili,
            'pipigaoxiao': Pipigaoxiao,
        }
        return supported_sources
    '''处理用户输入'''
    def dealInput(self, tip=''):
        user_input = input(tip)
        if user_input.lower() == 'q':
            self.logger_handle.info('ByeBye...')
            sys.exit()
        elif user_input.lower() == 'r':
            self.initializeAllSources()
            self.run()
        else
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值