伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

Windows UWP 哔哩哔哩(B站)缓存视频重命名工具

来源:本站原创 浏览:304次 时间:2021-04-28
写在上面的总结

B站视频下载,使用下来,感觉比较好用的就Windows Store的UWP应用 哔哩哔哩 和Python平台的工具you-get了。

you-get需要Python环境,UWP版的哔哩哔哩需要从Windows store下载。


本文章写的是从 UWP版的哔哩哔哩中缓存下来的视频重命名等处理。

背景最近发现B站上面一些比较好的视频,想要将它下载本地,当时逛Github的时候,发现一个Python小工具,使用的是Windows应用商城中的哔哩哔哩的缓存功能,然后修改名称的方法。


试用了下,可以实现功能,看了下源码,是很简单的文本字符串处理、文件重命名、文件移动、遍历文件夹功能。

正好最近在学习PowerShell,所以就试用PowerShell重写了此功能。

GitHub: https://github.com/shuimqcn/bilibili_video_rename_tool/blob/master/app.ps1

...
下载好的一个视频目录结构:

F:\Bilibili_Cache\200857352>tree /F
卷 新加卷 的文件夹 PATH 列表
卷序列号为 54A8-0707
F:.
│ 200857352.dvi
│ cover.jpg
│ desktop.ini

├─1
│ 200857352.info
│ 200857352_1.xml
│ 200857352_1_0.mp4

├─10
│ 200857352.info
│ 200857352_10.xml
│ 200857352_10_0.mp4

├─2
│ 200857352.info
│ 200857352_2.xml
│ 200857352_2_0.mp4

├─3
│ 200857352.info
│ 200857352_3.xml
│ 200857352_3_0.mp4

├─4
│ 200857352.info
│ 200857352_4.xml
│ 200857352_4_0.mp4

├─5
│ 200857352.info
│ 200857352_5.xml
│ 200857352_5_0.mp4

├─6
│ 200857352.info
│ 200857352_6.xml
│ 200857352_6_0.mp4

├─7
│ 200857352.info
│ 200857352_7.xml
│ 200857352_7_0.mp4

├─8
│ 200857352.info
│ 200857352_8.xml
│ 200857352_8_0.mp4

└─9
200857352.info
200857352_9.xml
200857352_9_0.mp4

说明:
1、视频名称位于根目录下的“200857352.dvi”文件中的“Title”字段。
2、一套视频有几节,以数字1开始进行命名子文件夹
3、数字子文件夹中的mp4文件就是每节的视频文件
4、数字子文件夹中的xml文件保存的是弹幕(猜测)
5、每节视频的课程名位于“info”文件的“PartName”字段

运行效果:
运行前:

运行:

运行后:

直接上代码:以后再来修改调整博客具体内容。

<#背景:通过Windows应用商店的Windows App 哔哩哔哩可以直接下载B站的视频         不过是以视频AID命令的文件夹中,视频名称也不是正式的视频名称。实现思路:  1. 获取目的目录根目录下的子目录对象,和文件对象。  2. 从文件对象中读取dvi文件得到视频课程的名称  3. 循环遍历子目录    1). 读取子目录中的info文件并取出“PartName”字段    2). 以1).中读取的“PartName”字段,重命名MP4格式的文件#>$scripts_dir = Split-Path -Parent $MyInvocation.MyCommand.Definition # 脚本所在路径# $root_path = $args    # $args用于命令行传参数$root_path = "F:\Bilibili_Cache\200857352\"write-host "------------------------------------------------------"write-host "进入根目录:" $root_path.FullNamewrite-host "------------------------------------------------------"Set-Location $root_path # 切换到传入参数的需要操作目录write-host "获取课程文件夹信息"write-host "------------------------------------------------------"$split_dir = Get-ChildItem -Path $root_path -Directory  # 获取根目录下的子文件夹对象$dvi_name = (Get-ChildItem -Path $root_path -File | Where-Object -FilterScript {$_.Name -like "*.dvi"} ).Name # 获取根目录下的“.dvi”文件名称$serial_video_name = (Get-Content $root_path$dvi_name -Encoding utf8 | ConvertFrom-Json).Title  # 读取根目录下的dvi文件获得视频课程的名称write-host "获取课程文件夹信息成功"write-host "------------------------------------------------------"<#write-host "子目录对象:" $split_dirwrite-host "dvi文件名:" $dvi_namewrite-host "视频课程名称:" $serial_video_name#>write-host "新建课程文件夹信息"write-host "------------------------------------------------------"# 以课程名称创建文件夹# 判断文件夹是否存在,存在删除后新建$path_isexist = (Test-Path ((Get-Location).Path.ToString() +"\*") -Include $serial_video_name) if ( $path_isexist -eq $true ){      Remove-Item -Path $serial_video_name    # 删除旧的课程目录      New-Item $serial_video_name -ItemType Directory    # 新建课程目录 }else{      New-Item $serial_video_name -ItemType Directory    # 新建课程目录 }write-host "------------------------------------------------------"write-host "处理课程目录"write-host "------------------------------------------------------"# 循环遍历子目录,将子目录中的.info文件的“PartName”字段取出,作为mp4格式文件的文件名ForEach ($subdir in $split_dir){     write-host "进入子目录" $subdir.FullName     Set-Location $subdir   #进入子目录     $subvideoname = ((Get-Content -Encoding utf8 (Get-ChildItem $subdir.FullName  "*.info" ).FullName ) | ConvertFrom-Json).PartName  # 从info文件中取得子视频的名称     $subvideoname = ($subvideoname).ToString() + ".mp4"   # 文件名加上后缀     write-host "当前子目录中的视频名称为:" (Get-ChildItem -Filter  "*.mp4").FullName     (Get-ChildItem  -Filter "*.mp4") | Rename-Item -NewName $subvideoname   # 子目录的mp4格式文件重命名     Move-Item (Get-ChildItem -Filter "*.mp4" ).FullName ($subdir.Parent.FullName.ToString() + "\" + $serial_video_name )  # 将mp4文件拷贝到上级目录下实现建立的课程目录中     Set-Location $subdir.Parent.FullName  # 返回上级目录}write-host "处理结束:"write-host "------------------------------------------------------"Set-Location $scripts_dir # 回到脚本所在路径

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net