Skip to content
斗鱼视频下载方法
Batchfile
Branch: master
Clone or download
Latest commit a0af52b Jan 19, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md
douyu.xlsx
merge.bat

README.md

如何下载斗鱼直播回放视频?

说明:这里下载的是斗鱼视频(v.douyu.com),不是直播

有时候我们觉得斗鱼上的某些视频内容不错,想下载下来怎么办?这里提供两个方法。

方法一是使用手机浏览器自带的缓冲视频功能进行缓冲,方法二是使用下载工具下载视频文件。如果对其中某个不感兴趣的,可以略过。

方法一:手机浏览器缓冲视频

如果你不需要一个完整的视频文件而只是想要把某些视频保存下来的话,可以使用QQ手机浏览器/UC手机浏览器等,访问斗鱼视频页面,对视频进行缓冲。

但是缓冲下来的视频只能在当前浏览器里观看,如果从手机的文件浏览器查看是不能直接播放的,你看到的也只是几十KB的m3u8文件,而不是完整的视频文件。而且不能传到电脑或者网盘里。

如果需要合并缓冲的文件,需要下载文件合并APP,请参考:手机uc视频缓冲合并教程

方法步骤

这里假设使用QQ手机浏览器

1、用QQ浏览器打开斗鱼视频播放页

可以直接访问斗鱼视频https://v.douyu.com/) 或打开斗鱼APP并找到想要缓冲的视频,然后通过分享等方式得到视频链接。

#Q1 斗鱼APP的视频在哪里?

新版本(2.4.3.1)斗鱼APP的视频在发现->热门视频->更多里。

斗鱼视频

2、点击视频播放并下载

打开页面后,需要点击视频开始播放,大概等待1-2秒后,可以看到视频的右下角出现一个下载的小图标,点击这个小图标即可开始缓冲(下载)视频。

视频下载按钮

开始下载后,在手机的通知栏里会出现下载进度条,也可以在浏览器中查看下载进度。

浏览器下载功能

浏览器下载列表

其他手机浏览器也都大同小异,大部分都有相似的功能。

#Q2 手机百度为什么不行?

如果你这平板电脑上使用手机百度,可能会出现这种情况:打开从APP分享过来的链接,结果发现页面中一直刷新,提示你网络未连接或网络错误。

初步判断出现这种情况的原因是:

打开的视频链接是PC端的,当在平板上打开时,斗鱼将自动检测,发现是平板电脑,于是将链接重定向到手机版网页,而重定向之后,手机版网页也自动检测,发现不是手机访问,于是再次将网页重定向到PC版网页,于是将成了死循环,网页不停地重定向和刷新。

解决方案:改用其他手机浏览器吧 ʅ(´◔౪◔)ʃ

方法二:使用下载工具下载视频文件

说明:此方法略复杂,可能会花费你一点时间。

需要的工具

  • Firefox火狐浏览器
  • Ant.com video downloader 浏览器插件
  • 记事本(Notepad)
  • Excel
  • 迅雷等下载工具
  • CMD命令行工具

步骤

1、打开火狐浏览器插件页,并安装Ant.com video downloader插件

插件详情

插件安装完成之后,在浏览器右上角可以看到一个下载图标。

视频下载插件

2、配置插件

点击插件下载图标旁的下箭头↓,选择Preferences(配置),其中:

  • Display Mode改为Toolbar
  • Downloaded movies folder可以改为想要保存视频的地址

说明:因为这款插件不能满足我们的所有需求,所以这里保存视频的文件夹在哪里关系不大,并不一定实际在这里保存所有视频。

3、打开斗鱼视频详情页,获取视频真实地址

打开想要下载的视频详情页,如:https://v.douyu.com/show/rjNBdvnpJGmME2yw

页面加载完成之后,可以看到视频插件download图标有动画,点击download可以看到当前可下载的视频列表。

由于斗鱼的视频是分段的,一个视频会分成多个ts格式视频,所以在视频列表中可以看到多个文件。

鼠标左键点击列表倒数第二个,即开始下载。(这个文件是完整视频的第一段)

插件中的视频列表

下载完成之后,可以在浏览器右上角找到已下载的文件。鼠标右键点击刚刚下载的文件,选择复制下载链接

浏览器下载文件列表

打开记事本,将复制的链接粘贴进去,大致是这样的:

http://vodhls1.douyucdn.cn/live/normal_live-740260rk8MibHW8n--20170110144756/d7311d31f6d44ab19591a128365be1db_0000000.ts?k=4b06eac9d87d0b3a52033045f305f5b9&t=587f7d4c&d=8FA98E9BC44E92B00EFF1EE78184E262&u=79712663&ct=web&vid=148236

这就是完整视频的第一段视频真实地址。

4、视频地址拆解

地址可以拆解为三段:

#1
http://vodhls1.douyucdn.cn/live/normal_live-740260rk8MibHW8n--20170110144756/d7311d31f6d44ab19591a128365be1db
#2
_0000000.ts
#3
?k=4b06eac9d87d0b3a52033045f305f5b9&t=587f7d4c&d=8FA98E9BC44E92B00EFF1EE78184E262&u=79712663&ct=web&vid=148236

可以看到第二段地址为7个0,这表示序列号,从0开始顺序增加,每个视频总段数不相同:

_0000000.ts
_0000001.ts
_0000002.ts
_0000003.ts
...

打开一个Excel表格或下载这个表格(Excel表格模板文件),将第一段复制到Sheet1A3单元格中,第三段复制到A4单元格中。

5、视频总数计算

上面这个仅仅是完整视频的第一段,我试着下了一个两个多小时的视频,总共分了784段,怎么计算的呢?

如果有模板的可以在表格的A6单元格写入视频的时长分钟数,在B6单元格写入视频的秒数,如一个视频时长11分12秒,则分别写入11和12,再比如视频时长为2小时18分钟37秒,则分别写入138(2*60+18)和37。

写入之后,将自动在C6单元格计算出总秒数(小时X3600+分钟X60+秒),并在D6单元格计算出大概的视频总数。

不使用模板的也可以自己大致算一下。

视频的总秒数为小时X3600+分钟X60+秒:

=A6*60+B6

视频的总分段数为:总秒数/10,再取整

=ROUND(C6/10,0)

视频总段数计算方法

6、分段视频地址获取

知道视频分段地址的规则和总分段数之后,剩下的就简单了。

已经下载模板的可以选择Sheet2,如果你已经按照上面的步骤做了,那么此时你只需要复制B列的地址即可。

假设计算出的视频总段数是10段,那么可以连续选择Sheet2B1单元格到B9B10单元格的内容,这些就是所有分段视频的地址。

所有分段视频的地址

如果没有下载模板,也可以在Excel中选择Sheet2,在A1单元格中粘贴_0000000.ts,然后拖动单元格右下角,复制单元格内容,这样就可以在表格的A列中得到从0开始递增的结果,如上图A列一样。

然后选中B1单元格,写入函数:

=CONCATENATE(Sheet1!$A$3,A1,Sheet1!$A$4)

函数的含义就是将Sheet1表格的A3单元格、当前表格Sheet2A1单元格和Sheet1表格的A4单元格进行字符串拼接。

函数写入之后,单元格内容将自动变化成视频地址。

同样的,需要将B1单元格内容拖动复制。

你可以多复制几个地址,以防万一视频不完整,如果是多出来的,不存在的视频,肯定是下载不成功的。

7、下载分段视频

打开迅雷或其他的下载软件,将刚才复制的分段视频地址粘贴到任务中,开始下载。

迅雷批量下载

因为每个视频都只有1、2M,比较小,所以下载起来比较快。

8、合并文件

下载完成之后,打开保存文件夹,将刚刚下载的所有视频文件(.ts格式)剪切到一个新的文件夹中,需保证此文件夹中的文件都是同一个视频的分段文件,而且是完整的。

下载的分段文件

在这个文件夹的空白处按住shift键,并点击鼠标右键,选择在此处打开命令窗口,打开CMD命令行工具。

在打开的命令行工具中输入:

copy/b *.ts all.ts

按下Enter键后命令将执行,这个命令的含义是:将当前文件夹中所有的.ts格式文件合并成一个文件all.ts,这个all.ts文件就是完整的视频文件了。

PS:你可以复制上面的命令,然后在命令行工具中右键->粘贴。在命令行中,Ctrl+V是无效的。

合并文件的过程很快,当完成时,中命令行中也会提示你:

1 file(s) copied.

这个时候,视频就合并完成了。除了这个合并的文件all.ts,其他的文件都可以删除了。(◡ᴗ◡✿)

PS:刚才用火狐浏览器也下载了一段视频,也没用了,可以删掉。

参考

You can’t perform that action at this time.