【4858.com】录制切片,python爬取摄像网址m叁u八摄像

By admin in 4858.com on 2019年4月12日

近些年发现有的网址,能够分析各大摄像网址的vip。仔细想了想,那也好不简单爬虫呀,爬的是摄像数据。

切开工具:ffmpeg

版权证明:本文为博主原创文章,未经博主允许不得转发。

什么下载斗鱼直播重放录制?

证实:那里下载的是斗鱼录像(v.douyu.com),不是直播

GitHub地址:https://github.com/ionepub/douyu-video-download

偶尔大家觉得斗鱼上的1些录像内容科学,想下载下来怎么做?那里提供七个方法。

办法1是利用手提式有线话机浏览器自带的缓冲录像功效进行缓冲,方法2是选择下载工具下载录像文件。假使对中间某些不感兴趣的,可以略过。

 首先选用二个录制网址,作者选的是 影视大全 ,然后采取播出不久的影片
“一出好戏” 。

任务:将aaa.mp4切片成m3u8和ts切片(亲测wmv,mp4可用)

主流录像应用软件的录像缓存具备分裂的积存方案,上边一1进行剖析。

方式一:手提式有线电电话机浏览器缓冲摄像

设若您不必要二个完完全全的录制文件而只是想要把一些摄像保存下来的话,可以行使QQ手提式有线电电话机浏览器/UC手提式有线电话机浏览器等,访问斗鱼录像页面,对录像实行缓冲。

可是缓冲下来的摄像只辛亏脚下浏览器里观察,假诺从手提式有线电话机的文书浏览器查看是不可能一直播放的,你看来的也只是几10KB的m3u八文本,而不是1体化的录制文件。而且不可能传到电脑照旧网盘里。

假设急需联合缓冲的公文,需求下载文件合并应用软件,请参见:手提式有线电话机uc摄像缓冲合并教程

分析页面

本人用的是chrome浏览器,F1二跻身查看。选取NetWork的Doc,发现中央部分的多寡是从这些网址取得的。

4858.com 1

 

在地点栏输入那么些链接,跳转到了录像出自的广播页面。

理所当然,在那么些页面就足以一向观察摄像了,可是我们要把录制下载下来。

4858.com 2

主流录像应用程式下载电影电视机剧1般都对内部存储器的占有较大。对于较大的录像文件的存款和储蓄,一种办法正是将录制文件分成大小相似的很多少个小录像然后各种下载,也叫伪流媒体。较为常见的一种是mp3格式作为录制的贮存格式。那种伪流媒体接纳1般的http情势,不像真正的流媒体育协会议传输格式rtsp,那样的话得搭建与门的流媒体服务器,费用相比较高。同时那种格局还是能够达成边下载边播放的功效。要想完成那一个意义,原则上就要求录制的蕴藏格式是分支的,而mp四正好满足这一个须要,只要将mp5的完全录制消息放在mp3文件的起来,这样若是加载了mp5文件的尾部之后,就能分析出该mp5文件的时间长度,比特率等等,为延续的摄像缓存做开头化设置,然后每加载壹部mp3文件的数据流,通过分析尾部来收获当前录制流的帧新闻,并在播放器中播放。

艺术步骤

那边就算使用QQ手提式有线电话机浏览器

探寻录制文件

照例是事先13分页面,在Other中,我们发现了有些意料之外的东西。

4858.com 3

查一下,m3u8是个吗东西。

m三u八是苹果集团推出壹种摄像播放标准,是m3u的壹种,可是编码格局是utf-八,是1种文件检索格式,将摄像切割成一小段一小段的ts格式的录像文件,然后存在服务器中(未来为了减小I/o访问次数,1般设有服务器的内部存款和储蓄器中),通过m3u七分析出来路径,然后去央浼。

那下就驾驭了,那正是我们要找的东西。

点击Response,查看这几个.m三u八的公文。观望发现,.ts后缀的文件地方是有规律的。大家只必要下载全体的.ts后缀文件,然后把它们构成成三个文件即可。

步骤:

因而,大摄像文件的门路选拔形式能够是多多益善个小文件的附加,而各种小文件都能够单独选用仓库储存路径,最后只要将组成同3个摄像的小文件实行联合就足以。

1、用QQ浏览器打开斗鱼录像播放页

能够一向访问斗鱼录像(https://v.douyu.com/)
或打开斗鱼应用程式并找到想要缓冲的录制,然后通过分享等方法取得录制链接。

合并.ts文件

命令行:“copy /b  F:\f\*.ts  E:\f\new.ts”。

履行该命令后,F:\f目录下的百分之百TS文件就被合并成2个new.ts文件了(你原来的那堆文件仍旧存在)。

那边运用copy命令的文书合并成效拓展ts文件的统一,copy前面包车型地铁 /b  参数表示把文件按二进制格式来统壹,假诺不加这几个参数,则会把对象当成文本文件来归并,并在文件内添加不必要的符号,这会招致播放出错,所以必须加 /b 参数。

1.下载ffmpeg命令工具(紫蓝安装)

1.优酷

以Nokia伍为例,实行1个轻重为13伍M的摄像的缓存。

Paste_Image.png

如上,所下载的摄像的公文夹是左图,此文件夹的内容如右图所示,能够观望优酷也是将大录像文件分割成许两个小录像文件,可是图中的名称为1-7的文本并非mp5,而是.ts文件。该存款和储蓄形式是m三u八格式。
m三u八是m3u的一种,是1种播放的正式。它是一种可扩张的播放列表文件格式。m3u是带有媒体文件UTiggoL的三个实在的播放列表标准。那种格式被用来作为HTTP
Live 媒体流索引文件的格式。
m3u八饱含UTF-八编码文字的m三u播放列表,全数的原来录制文件都被下载到二个隐身文件夹了。点击m3u八文件就会活动把这一个.ts文件链接在共同播放,能够用notepad++打开m3u八文本查看内容,里面是3个个当三步跳件的链接,这一个链接指向一个个小录像文件,也正是说你找不到原来下载那几个文件的网站了。
若是想直接播放完整的原来录制文件就要找到十二分文件夹,里面包车型大巴录像文件是一段一段的,先统百分之十三个完好无缺的摄像文件,然后就足以播放了。当然,若是除去了这么些隐藏文件夹,那那几个m三u8文件也就没用了,点击播放会提醒解析战败。
其余测试机型类同。

#Q一 斗鱼应用程式的录制在何地?

新本子(2.4.3.一)斗鱼应用软件的摄像在发现->热门录制->越多里。

4858.com 4

斗鱼摄像

编辑脚本,下载.ts文件

from urllib import request
import urllib
from time import sleep
import socket

class CatchVideo(object):
    def __init__(self):
        self.headers = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"
        self.url = ""

    def set_url(self, i):
        if i < 1000:
            self.url = "https://cdn.letv-cdn.com/20180811/YLDUgCD6/1000kb/hls/DtrOg2412%03d.ts" % i
        else:
            self.url = "https://cdn.letv-cdn.com/20180811/YLDUgCD6/1000kb/hls/DtrOg2412%04d.ts" % i

    # 获取并下载ts文件
    def dl_ts(self, i):
        rq = request.Request(self.url)
        rq.add_header('User-Agent', self.headers)
        response = request.urlopen(rq)
        resread = response.read()
        with open(str(i)+".ts", "wb") as f:
            f.write(resread)
        response.close()# 关闭urlopen方法,防止被ban

    def start_work(self):
        for i in range(0, 1563+1):
            self.set_url(i)
            try:
                self.dl_ts(i)
                print(str(i) + ".ts  success")
                sleep(1)
            except urllib.error.URLError as e:
                print(e.reason)
                break
            except socket.timeout as e2:
                print(e2.reason)
                self.dl_ts(i)


if __name__ == '__main__':
    catch_video = CatchVideo()
    socket.setdefaulttimeout(20)
    catch_video.start_work()

 

运行进程中,出现了五次报错,分别是:

  • urllib.error.URLError :[WinError 10054] 
    远程主机强迫关闭了二个存活的连天
  • socket.timeout     read读取超时

化解办法:

  1.增加response.close,关闭urlopen方法。

  二.日增time.sleep,有壹秒缓冲时间

  三.设置socket.setdefaulttimeout,给socket预留缓冲时间

4858.com 5

2.爱奇艺

【4858.com】录制切片,python爬取摄像网址m叁u八摄像。缓存一个大大小小为5.陆M的音信类摄像

Paste_Image.png

如上,所下载的摄像的文件夹是左图的首先个文件夹,此文件夹的情节如右图所示,能够见见录制是由四个后缀名字为”.qsv”的文本构成。

用任何测试机也就好像,而并从未实行大录制文件的细分。
通过搜索资料可得:qsv是一种录像加快格式。qsv格式是爱奇艺公司研究开发的1种摄像文件格式,由亍爱奇艺周全正版录像,故qsv格式只好选择奇艺播放器(爱奇艺影音)播放,不能通过经常的格式转换软件拓展转换。

二、点击录像播放并下载

开拓页面后,须要点击录像起初播报,差不多等待一-二秒后,可以看来摄像的右下角出现叁个下载的小图标,点击那些小图标即可初阶缓冲(下载)摄像。

4858.com 6

录制下载按钮

开班下载后,在手提式无线电话机的公告栏里会产出下载进程条,也足以在浏览器中查看下载进程。

4858.com 7

浏览器下载功用

4858.com 8

浏览器下载列表

别的手提式有线电话机浏览器也都吉安小异,超越四分之二都有相似的职能。

还设有毛病

其实运维进度中,脚本执行功效略低。之后会进入三十二线程,继续革新,扩充运营效用。

 

 

下载ffmpeg命令工具

三.腾讯录像

用腾讯录制下载3个高低为玖一.陆M的电视机剧(一集)。

Paste_Image.png

所下载的录制的文本夹是左图的第3个.sd文件夹,此文件夹的情节如右图所示,能够看到每下载贰个摄像就在左图路径下创制1个新的文书夹。文件夹下的录制是由三个mp3格式的录制文件构成的。
其余测试机型类同。

#Q二 手提式有线电话机百度为什么不行?

假诺你那GALAXY Tab上选取手提式有线电话机百度,或者会出现那种情况:打开从电脑软件分享过来的链接,结果发现页面中平素刷新,提醒您互联网未连接或互联网错误。

开端判断出现这种景观的来由是:

开拓的录像链接是PC端的,当在机械上打开时,斗鱼将自动检查评定,发现是生硬总结机,于是将链接重定向到手提式有线电话机版网页,而重定向之后,手提式有线电话机版网页也自动检测,发现不是手提式无线电话机访问,于是再度将网页重定向到PC版网页,于是将成了死循环,网页不停地重定向和刷新。

不留余地方案:改用别的手提式无线话机浏览器吧 ʅ(´◔౪◔)ʃ

参照博客:

 

 

 

2.解压

四.今日头条录像

用腾讯网录制缓存一个大小为15玖.4M的综合艺术类摄像。

Paste_Image.png

如上,所下载的录制的文本夹是左图的第二个文件夹,此文件夹的内容如右图所示,能够见见每下载二个录制就在左图路径下成立二个新的文书夹,而且缓存的格式为m4u八。
m四u八是m4u的一种,与m三u八接近。这种文件蕴含链接到MPEG –
四电影和摄像剪辑,但不包蕴录制文件自身,类似于一个M三U文件,存款和储蓄播放列表的录像文件。

方法二:使用下载工具下载录像文件

申明:此方式略复杂,恐怕会费用你或多或少岁月。

更新代码,参预多进度

修改了start_work方法和主进度:

    def start_work(self, i):
        self.set_url(i)
        try:
            self.dl_ts(i)
            print(str(i) + ".ts  success")
            sleep(1)
        except urllib.error.URLError as e:
            print(e.reason)
            self.dl_ts(i)
        except socket.timeout as e2:
            print(e2.reason)
            self.dl_ts(i)


if __name__ == '__main__':
    catch_video = CatchVideo()
    socket.setdefaulttimeout(20)# 设置socket层超时时间20秒
    I = 0
    while I < 1563+1:
        # 5个进程并发运行
        p_l = [Process(target=catch_video.start_work, args=(i,)) for i in range(I, I+5)]
        for p in p_l:
            p.start()
        for p in p_l:
            p.join()
        I = I + 5

 

 

此间安装了七个进程同时运营,太多远程主机会拒绝请求。

 

OK,那样就能非常的慢下载了。隔了几天终于想起来还有个电影没看,哈哈 ^_^

 

 

 

 

4858.com 9

伍.乐视摄像

以One plus5为例,进行一个大大小小为135M的影片摄像和每集大小约为50M的TV剧(共5集)的缓存。

Paste_Image.png

如上,是左图所下载的摄像列表,共五个录制。右图是相应的文本夹的内容,能够看出在手提式有线电话机内部存款和储蓄器中新建的LetvDownload/storage/download保存。下载新摄像并不会创制八个新的文件夹,间接保存在该目录下,且大摄像文件(如右图第三个)不开始展览分割。保存格式为VCD。
其它,在乐视手提式有线话机上测试时录像缓存路径有所分化,为 手提式有线电话机内存/ledown
应该是出于APP版本与任何机型的版本差距过大。

亟待的工具

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

解压

陆.马铃薯录制

以华为伍为例,进行1个尺寸为490.4M的录像录制和分寸为叁.四M的资源新闻录制的缓存。

Paste_Image.png

上边的图是七个录像文件的文本夹,下方左图是第二个公文夹的始末(3.4M的新闻摄像),下方右图是第二个文本夹的剧情(490.四M的影片摄像)。通过不其余测试机型的相比,能够得出结论:马铃薯录像下载摄像会创制新的公文夹,在下载小摄像文件时,使用m三u8的摄像格式,而在下载较大的摄像时,使用mp3录制格式,同时会将大文件分割成多个mp3文件存款和储蓄,合并时通过搜寻m叁u八的列表文件播放mp3。

步骤

4858.com 10

不等录制应用相比较如下:

Paste_Image.png

Paste_Image.png

Paste_Image.png

综述,能够看看差异摄像应用选取的蕴藏路径首要分为两大类:1类是储存在二哥大内部存储器根目录下的文书夹,另一类是储存在手提式有线电话机内部存款和储蓄器/Android/data/包名下的公文夹,关亍那二种格局的不及描述如下:

率先类的文本属于公共文件。文件是能够被任意访问,且文件的数量对任何应用或许用户来说都是有意义的,当使用被卸载后,其卸载前创办的文书如故保留。借使你想在外部存款和储蓄器储上放公共文件你能够选择getExternalStoragePublicDirectory()这些点子。而第壹类的文件属于私有文件。全数应用程序的外表存款和储蓄的私家文件都位于根目录的Android/data/下,其实是因为是外部存款和储蓄的原因就是是那种类型的公文也能被其余程序访问,只可是三个施用私有的文件对任何应用其实是未曾访问价值的(恶意程序除了这一个之外)。外部存储上,应用私有文件的市场股票总值在亍卸载之后,这个文件也会被删除。类似于当中存款和储蓄。

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

4858.com 11

4858.com 12

插件详情

插件安装到位之后,在浏览器右上角能够看出1个下载图标。

4858.com 13

摄像下载插件

目录

二、配置插件

点击插件下载图标旁的下箭头↓,选取Preferences(配置),在这之中:

  • Display Mode改为Toolbar
  • Downloaded movies folder能够改为想要保存摄像的地点

表明:因为那款插件无法满足我们的持有需要,所以那边保留录像的文件夹在何地关系十分的小,并不一定实际在那边保留全体录制。

4858.com 14

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

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

页面加载成功现在,能够看来录像插件download图标有动画,点击download能够观望眼下可下载的录制列表。

4858.com 15

由于斗鱼的摄像是分支的,三个录像会分为四个ts格式录制,所以在摄像列表中得以见见八个公文。

鼠标左键点击列表尾数第二个,即起来下载。(那些文件是全部录像的首先段)

4858.com 16

插件中的视频列表

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

4858.com 17

浏览器下载文件列表

打开记事本,将复制的链接粘贴进去,大约是如此的:

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、录像地址拆解

地点能够拆卸为3段:

#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

能够见见第2段地址为多少个0,这象征体系号,从0伊始逐项增添,每种录制总段数不等同:

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

开拓1个Excel表格或下载那几个表格(Excel表格模板文件),将第3段复制到Sheet1A3单元格中,第3段复制到A4单元格中。

3.使用

5、录制总数计算

上面那么些只有是完全录制的第壹段,小编试着下了多个七个多小时的录像,总共分了7八四段,怎么总计的呢?

借使有模板的能够在表格的A6单元格写入录制的时间长度分钟数,在B6单元格写入录像的秒数,如二个录像时间长度13分1二秒,则分别写入1一和1二,再比如说摄像时间长度为2钟头18分钟三七秒,则分级写入13八(2*60+18)和37。

写入之后,将自行在C6单元格计算出总秒数(小时X3600+分钟X60+秒),并在D6单元格总括出大致的录像总数。

不采纳模板的也得以团结大约算一下。

摄像的总秒数为小时X3600+分钟X60+秒:

=A6*60+B6

摄像的总分段数为:总秒数/10,再取整

=ROUND(C6/10,0)

4858.com 18

录像总段数总括格局

a.curl +R

6、分段摄像地址获取

领会录像分段地址的规则和总分段数之后,剩下的就归纳了。

早就下载模板的可以选取Sheet2,若是您早就根据上边的步骤做了,那么此时您只要求复制B列的地方即可。

只要总括出的摄像总段数是十段,那么能够连接接纳Sheet2B1单元格到B9B10单元格的内容,那一个便是装有支行录制的地址。

4858.com 19

具备支行录制的地方

倘使未有下载模板,也足以在Excel中采取Sheet2,在A1单元格中粘贴_0000000.ts,然后拖动单元格右下角,复制单元格内容,那样就能够在报表的A列中获得从0初阶递增的结果,如上海体育场地A列一样。

下一场选中B1单元格,写入函数:

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

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

函数写入之后,单元格内容将自行生成成摄像地址。

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

您能够多复制多少个地方,以免万一录制不完整,假若是多出去的,不设有的录像,肯定是下载不成功的。

4858.com 20

7、下载分段录制

打开迅雷或任何的下载软件,将刚刚复制的支行录像地址粘贴到职责中,初步下载。

4858.com 21

迅雷批量下载

因为各样录像都只有一、二M,比较小,所以下载起来比较快。

b.切换来刚才解压的盘符,比如笔者放在d盘:(此处作者平素不配备环境变量,配置环境变量后,能够在任何地点展开,不供给切换目录)

8、合并文件

下载完成之后,打开保存文件夹,将刚刚下载的装有录制文件(.ts格式)剪切到一个新的公文夹中,需确认保证此文件夹中的文件都以同一个录像的分段文件,而且是完整的。

4858.com 22

下载的道岔文件

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

4858.com 23

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

copy/b *.ts all.ts

4858.com 24

按下Enter键后下令将执行,那几个命令的意义是:将眼下文件夹中有所的.ts格式文件合并成2个文件all.ts,这个all.ts文件正是欧洲经济共同体的录像文件了。

PS:你能够复制上边的命令,然后在命令行工具中右键->粘贴。在命令行中,Ctrl+V是不行的。

统一文件的经过非常快,当成功时,中命令行中也会提醒您:

1 file(s) copied.

4858.com 25

这一年,录像就联合达成了。除了那个统壹的文本all.ts,其余的文件都能够去除了。(◡ᴗ◡✿)

PS:刚才用火狐浏览器也下载了一段录制,也没用了,能够删掉。

4858.com 26

参考

  • 斗鱼网录像下载方法摄像教程
  • UC浏览器(安卓版)如何下载也许缓存录制?
  • 4858.com,手提式有线电话机uc摄像缓冲合并教程

c.切换来刚才要选取工具的目录下,比如笔者ffmpeg.exe所在的目录是“D:\ffmpeg\ffmpeg-20171218-3f88744-win64-static\bin”:

4858.com 27

d.使用命令:ffmpeg -i XXX.mp4 -c:v libx26四 -c:a copy -f hls XXX.m3u8

中间,XXX.VCD为本土录像文件,XXX.m叁u8为终极生成的播放索引列表,与此同时还有N多少个ts文件。比如,小编那里要举行的是ffmpeg
-i aaa.mp四 -c:v libx26四 -c:a copy -f hls bbb.m三u捌

4858.com 28

举行成功后在本目录下就足以见到一个m3u8文本和第一次全国代表大会堆的ts文件。

4858.com 29

经过测试,发现mp5和mkv的ts切片都得以播放,可是avi的ts切片唯有声音从未图像,原因暂不明,揣测与录像编码有关,早先时期深切钻研。

其余命令:

ffprobe aaa.mp肆(文件名):查看文件编码格局

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有