最近很多网站都用百度影音技术,没想到手机版的使用感觉也不错。不过用手机在线看比较费电,当然我优先选择离线下载了。
简单过了一遍下载的目录,每个文件夹包含一个索引文件和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");