分享一个bilibili视频下载的方法,并使用python脚本重命名

最近惊奇的发现现在b站上越来越多的教程视频,突然感觉一波正能量啊,但是下载起来不是很方便啊!经过一番搜罗,发现还是有不少方法的,什么加各种字母的,还有各种插件的,倒也确实能用感觉很别扭,有些也不是原画质的。感觉还不是很方便。

其中有一个比较靠谱,就是bilibili官方的,通过windows商店安装,可以缓存到本地的
windows版的bilibili
下载下来就是正常的视频格式,还是挺不错的,但是文件名很鸡肋,各种数字,看起来不方便,长这个样子,但是至少视频是可以正常播放的。
下载效果
于是写个脚本规整一下,各种问题圆满解决,可以下载各种合集。一键命名打包。

import os
import json
import shutil


def get_sub_dir_names(file_dir):
    for root, dirs, files in os.walk(file_dir):
        return dirs


def get_sub_file_names(file_dir):
    for root, dirs, files in os.walk(file_dir):
        return files


def makedir(dir_name):
    # 创建文件夹
    if not os.path.exists(dir_name):
        os.makedirs(dir_name)
        print("---------------------------")
        print("文件夹创建成功!")
        print(dir_path)
        print("---------------------------")


if __name__ == "__main__":
    file_format = '.flv'                            # 文件格式
    srcFile = "E:\\BiliBili"             		# 文件所在目录
    title = ""                                      # 文件标题
    dir_title = ""                                  # 新目录名
    dir_path = "E:\\BiliBili"                       # 新路径
    catalog = []                                    # 最后目录
    dir_names = get_sub_dir_names(srcFile)
    for path in dir_names:
        file_path = os.path.join(srcFile, path)
        file_names = get_sub_file_names(file_path)
        for info_file_name in file_names:
            info_file_path = os.path.join(file_path, info_file_name)
            if info_file_path.endswith("info"):
                info_file = open(info_file_path, encoding='UTF-8')
                info = info_file.read()
                title = json.loads(info)["PartName"]
                catalog.append(title)
                if not dir_title.strip():
                    # 创建文件夹
                    dir_title = json.loads(info)["Title"]
                    dir_path = os.path.join(dir_path, dir_title)
                    makedir(dir_path)
                    print(dir_path)
                info_file.close()
        for info_file_name in file_names:
            info_file_path = os.path.join(file_path, info_file_name)
            if info_file_path.endswith(file_format):
                new_file_name = os.path.join(file_path, title) + file_format
                # 改名
                os.rename(info_file_path, new_file_name)
                # 移动
                shutil.move(new_file_name, dir_path)
    # 生成目录
    write_catalog = open(dir_path + "\\catalog.txt", "w")
    catalog.sort()
    for title in catalog:
        write_catalog.write(title + "\n")
        print(title)
    write_catalog.close()

最后就可以得到一个文件夹和一个合集下的视频,是不是很方便!
一些老视频也有可能会有多个文件,就需要拼接什么的,但目前发现大部分都是单个的。
如果遇到需要拼接的情况,可以自行用下面的地址下载拼接脚本,但是耗时会比较长了!

其他源码地址 https://gitee.com/fuyq/bilibili

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值