最近很多网站都用百度影音技术,没想到手机版的使用感觉也不错。不过用手机在线看比较费电,当然我优先选择离线下载了。
简单过了一遍下载的目录,每个文件夹包含一个索引文件和4M大小的若干个视频文件。
最初接触时候,视频文件用guid作为文件名,需要分析索引文件决定先后顺序。
不过最近版本bdre文件替代了索引文件,记录一些下载地址等信息。
视频文件也统一命名格式了。
目前似乎支持bdv和rmvb的格式,一般打开文件夹里面往往是A.rmvb_0000 A.rmvb_0001...;或者是A.bdv_0000 A.bdv_0001...
bdv文件合并之后,后缀名改成avi即可使用。
合并比较简单:
对于rmvb格式:
在windows平台 copy /b A.rmvb_* A.rmvb
linux平台 cat A.rmvb_* > A.rmvb
对于bdv格式:
在windows平台 copy /b A.bdv_* A.avi
linux平台 cat A.bdv_* > A.avi
有时候同时下载很多视频时候,每个文件夹过一次也比较吃力。
所以顺便写一个python脚本。
首先,复制视频目录到本地硬盘,例如c:\movie
然后,运行脚本,产生一个film.bat文件
最后,你可以看见c:\movie有若干个视频文件。
----------------------------------------------------------------------------------------------------
请保存为makemovie.py后,执行。这是针对windows平台。
# -*- coding: UTF-8 -*-
import os
import io
import string
import shutil
def read_video_file(brpFilmFolder):
for fileitem in os.listdir(brpFilmFolder):
targetfile = os.path.join(brpFilmFolder,fileitem)
if(os.path.isfile(targetfile) == False):
continue;
filebasename , fext = os.path.splitext(fileitem);
if(string.lower(fext) != ".rmvb_0000"):
continue;
else:
print(filebasename)
return filebasename
return None
# list brp files
# read brp file
def enum_video_file(brpFolder,batch_line):
for fileitem in os.listdir(brpFolder):
targetfile = os.path.join(brpFolder,fileitem)
if(os.path.isfile(targetfile) == True):
continue;
filebasename = read_video_file(targetfile)
if(filebasename is None):
continue;
batch_line.append('cd \"%s\"' % targetfile)
batch_line.append('copy /b \"%s\".rmvb_* ..\\\"%s\".rmvb' % (filebasename,filebasename))
batch_line.append('cd ..')
def create_report(brpFolder):
try:
batch_line = list()
# list brp files
enum_brp_file(brpFolder,batch_line)
# create bat file
objTar = open('film.bat','w+')
# write list to file
for line in batch_line:
objTar.write(' %s\r\n' %(line))
# close file
objTar.close()
except Exception as exc:
print("%s" % exc);
if __name__ == '__main__':
searchFolder = os.getcwd()
create_report(searchFolder)
print("done");