大家好,这次给的大家介绍安卓系统中B站的离线文件如何保存到电脑中。

bilibili离线缓存的目录在哪里 Bilibili离线文件存储(1)

1)首先在Android\data\tv.danmaku.bili\download可以找到我们下载的文件,我下载了一套理论力学的视频,放在了download下的17338839这个文件夹里,因此我下载的视频就放在Android\data\tv.danmaku.bili\download\17338839下。

2)让我们点开这个文件夹看一下,里面果然是一个又一个的文件夹。

bilibili离线缓存的目录在哪里 Bilibili离线文件存储(2)

3)每个文件夹下都有一部分我下载的视频,合起来就是一套完整的视频。以名字为2的文件夹进行说明,点看这个文件夹,可以看到另一个文件夹和两个文件,在lua.flv360.bili2api.15这个文件夹下放着我下载的视频文件,以blv为后缀。什么?为什么这个视频的名字是个编号呢。大家别着急,在entry.json文件中part关键字后面就是这个视频真正的名字,大家可以复制这个名字,然后重命名视频。

bilibili离线缓存的目录在哪里 Bilibili离线文件存储(3)

bilibili离线缓存的目录在哪里 Bilibili离线文件存储(4)

4)如果有很多这样的视频需要命名呢,我写了一个Matlab程序,供大家参考,使用前,我把原来按数字1,2,3……命名的那些文件夹拷在了E:\17338839\video文件夹下,newvideo文件夹用来存放提取出的视频文件。

%Findbilibili用于查找blv文件,并拷贝到newvideo文件夹下

clc;clear;

PrjPath='E:\17338839';

RunNam='video';

NewRunNam='newvideo';

NewPrjPath=strcat(PrjPath,'\',NewRunNam);

mkdir(NewPrjPath);

Path=strcat(PrjPath,'\',RunNam);

ListName{1,1}=Path;

first=1;%ListName的当前元素下标

rear=1;%ListName的最后一个元素下标

DlcPath={};%各工况路径及名称

DlsLen=0;%工况个数

disp('开始搜索...');

while(1)

disp(char(strcat('正在搜索第',num2str(first),'个文件夹,名为"',Path,'"')));

SubPath=dir(Path);

Len=length(SubPath)-2;

for i=1:Len

if ~SubPath(i 2,1).isdir%判断是否为文件夹

PjNamPos=findstr(SubPath(i 2,1).name,'.blv.');%*.$TE文件中记录了工况是否正确仿真完

if PjNamPos

DlsLen=DlsLen 1;

DlcPath{DlsLen,1}=Path;%DlcPath中记录各小工况的路径

DlcPath{DlsLen,2}=SubPath(i 2,1).name(1:PjNamPos-1);%工况名字

SlashPos=findstr(Path,'\');

NamFid=fopen(strcat(Path(1:SlashPos(length(SlashPos))),'entry.json'),'r','n','utf-8');

LinStr=fgetl(NamFid);

fclose(NamFid);

ParPod=findstr(LinStr,'"part"');

vidPod=findstr(LinStr,')","');

DlcPath{DlsLen,3}=LinStr(ParPod 8:vidPod(2));

DlcPath{DlsLen,4}=strrep(strrep(strcat(DlcPath{DlsLen,3},'_',num2str(str2num(DlcPath{DlsLen,2}) 1)),'(','('),')',')');

try

copyfile(strcat(DlcPath{DlsLen,1},'\',DlcPath{DlsLen,2},'.blv'),strcat(NewPrjPath,'\',DlcPath{DlsLen,4},'.blv'),'f');

catch

disp(DlcPath{DlsLen,1});

return;%直接结束程序,下面的不运行了;break是直接结束本循环

end

clear SlashPos;

end

else

rear=rear 1;

ListName{rear,1}=strcat(Path,'\',SubPath(i 2,1).name);

end

end

first=first 1;

if first>rear

break;

end

Path=ListName{first,1};

end

disp(strcat('搜索完毕,共搜索',num2str(first-1),'个文件夹,找到',num2str(DlsLen),'个文件.'));

,