由于工作原因驻场开发,地区限制,酒店竟没有wifi,所以开了流量套餐
其中就包括B站在线观看,缓存视频单独走流量计算,每个月有30G的流量,
虽然可以愉快的手机刷B站,但是明显PC看视频才更爽,
且开热点给PC看B站的流量是不算在单独流量内的
所以就想到了,利用手机缓存视频,传到PC看
翻了一下,安卓不知道何时之后的更新,B站客户端缓存路径不再刻意配置
直接放在应用的路径下面
以魅族Flyme9 安卓8为例,B站缓存目录在
1
| /Andriod/data/tv.danmaku.bili/download
|
拷贝整个文件夹至电脑
一列数字开头的文件夹,应该就是ID或者番号
再里面是一个c_的文件夹,里面有
80
audio.m4s
index.json
video.m4s
danmaku.xml
entery.json
entery.json 入口文件,其中title就是视频名称
danmaku.xml 弹幕文件
80 应该是视频清晰度的区分
拷贝到一个文件夹下面,下载ffmpeg,我是放在了用户根目录,相当于 ~路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| const fs = require('fs'); const path = require('path'); const { execSync } = require('child_process');
const bash = (dirName, title) => `~/ffmpeg -i ${dirName}/video.m4s -i ${dirName}/audio.m4s -codec copy ${title}.mp4` const fileListStr = execSync(`find ${__dirname} -name 'entry.json'`, { encoding: 'utf-8' });
fileListStr.split('\n').filter(Boolean).forEach(file => { const config = fs.readFileSync(file, 'utf-8'); let { title } = JSON.parse(config); title = title.replace(/ /g, '+'); try { const dirName = path.dirname(file) const output = `${__dirname}/temp/${title}` const commond = bash(`${dirName}/80`, output) execSync(commond); } catch (error) { fs.appendFileSync('./error.txt', title + '\n') } })
|