某些网站使用ts文件来播放视频,有些视频资料值得珍藏,便有了下面的文章。

ts是日本高清摄像机拍摄下进行的封装格式,全称为MPEG2-TS。ts即”Transport Stream”的缩写。MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。

用chrome打开某些网站的视频,同时打开“开发者工具”,我们就能在network选项卡里找到动态下载的ts文件,取得url后放到迅雷里就能得到一段视频片段。

对于播放时间不长的小视频,我们可以用下面的手工方法将一批视频片段合并成一个完整的视频:

  1. 一.打开迅雷,先确保没有别的在下载。
  2. 二.播放视频时打开Chrome的“开发者工具”中netowrk选项卡,看到诸如828EbZ1743007.ts的文件出现后双击用迅雷下载,有多少个下载多少个,漏了就会丢失信息。
  3. 三.将下载好的批量ts文件拷贝到一个目录中,如d:\temp,然后打开cmd,进入这个目录,输入如下命令:copy /b *.ts final.ts ,注意这个命令分四段(1.copy 2./b 3.*.ts 4.final.ts)。
  4. 之后,新的文件final.ts就被创建好了,用视频播放工具比如迅雷自带的“迅雷播放组件”或是“wndows media player”就可以看了。

但是,如果视频片段数量过多,手工下载就会又繁重又容易出错,好在我们可以让python来帮忙:

  1. #encoding=utf-8
  2. import urllib.request
  3. import os
  4. # 下载文件到本地的函数
  5. def download(fileUrl):
  6. # 获取网络文件的文件名
  7. filename = os.path.basename(fileUrl)
  8. rsp=urllib.request.urlopen(fileUrl)
  9. img=rsp.read()
  10. with open(filename,\'wb\') as f:
  11. f.write(img)
  12. for i in range(109,203):
  13. s = \'%03d\' % i
  14. url="https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261"+s+".ts"
  15. print(url)
  16. download(url)
  17. print("downloaded")

这段文章能生成一堆ts文件的地址,然后挨个下载。

 

使用这个程序似乎快捷了,但是片段过多还是会有两个问题:

1.下载时间慢,远不如迅雷。

2.有可能被远程网站突然关闭连接。

 

如何改进?再写一点断点续传的代码?还是寻求更高效的下载手段?其实都不必,我们用程序把要下载文件的url得到就好了:

  1. #encoding=utf-8
  2. text=""
  3. for i in range(111,203):
  4. s = \'%03d\' % i
  5. url="https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261"+s+".ts"
  6. text=text+url+"\n"
  7. with open(\'result.txt\',\'a\') as file_handle:
  8. file_handle.write(text)

执行完这段后,要下载的文件地址就被写到result.txt里面去了,示例如下。

  1. https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261186.ts
  2. https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261187.ts
  3. https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261188.ts
  4. https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261189.ts
  5. https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261190.ts
  6. https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261191.ts
  7. https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261192.ts
  8. https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261193.ts
  9. https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261194.ts

然后,把这些网址交给迅雷,让它快速又安全的完成任务就好了。

最后用以下命令将视频片段合成完整的文件:

copy /b *.ts final.ts

这样,将网站播放的视频保存成本地文件的任务就完成了,方便而快捷,你不妨试试!

-2020年9月7日11点49分-

 

版权声明:本文为pyhy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/pyhy/p/13626035.html