CN116233499A - 一种用于防止m3u8视频被并发批量下载的方法 - Google Patents
一种用于防止m3u8视频被并发批量下载的方法 Download PDFInfo
- Publication number
- CN116233499A CN116233499A CN202211521521.2A CN202211521521A CN116233499A CN 116233499 A CN116233499 A CN 116233499A CN 202211521521 A CN202211521521 A CN 202211521521A CN 116233499 A CN116233499 A CN 116233499A
- Authority
- CN
- China
- Prior art keywords
- server
- video
- queue
- cookie information
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 235000014510 cooky Nutrition 0.000 claims abstract description 59
- 239000012634 fragment Substances 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 238000005336 cracking Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26291—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/26613—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing keys in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种用于防止m3u8视频被并发批量下载的方法,包括S1:视频服务商向服务器发布内容;S2:播放视频时客户端的浏览器向服务器请求获取m3u8文件;S3:服务器将m3u8文件返回给客户端,并设置Cookie信息;S4:客户端解析m3u8文件,将所需播放的视频片段向服务器发起请求,并携带Cookie;S5:服务器端获取Cookie并解密,判断服务器是否需调整,使对应服务器响应请求;S6:服务器经对Cookie所记录的信息核实和更新后,将用户所需播放的视频片段内容文件以及更新后的Cookie一起返回给客户端;S7:循环步骤S4‑S6内容完成视频播放。通过上述方案增加用户违法成本,避免视频被窃取。
Description
技术领域
本发明涉及视频播放技术领域,特别涉及一种用于防止m3u8视频被并发批量下载的方法。
背景技术
近年来,随着宽带技术以及移动互联网技术的广泛发展,越来越多的用户通过手机、PC和平板等设备观看网络视频。
网络视频的播放技术,也从早期的RTSP和RTMP,发展成以HTTP为承载的视频流媒体技术,例如YouTube最早推广的HTTP渐进式下载,微软主推的SmoothStreaming等。而随着iPhone和iPad在移动终端领域的崛起,苹果公司于2017年推出了HTTPLiveStreaming方案,其架构简单、易于实现,且同时支持点播和直播两种播放方式,客户端还可以根据网络带宽的变化去动态获取相应的视频码流,使视频播放可以客服网络带宽的抖动,从而增加客户体验。因为以上优点,HTTPLiveStreaming逐渐成为主流视频在线播放协议之一。同时,其终端技术被HTML5接受,各主流浏览器均默认支持HTTPLiveStreaming视频的播放,也因此,HTTPLiveStreaming逐渐被各大在线网络视频运营商所采用。
使用HTTPLiveStreaming播放视频,通常在服务器端要提供一个m3u8文件,例如图1所示,内容包含视频对应的所有视频片段的URL。其中,EXT-X-TARGETDURATION,指定了媒体片段最大时长,而每个EXTINF则定义了具体媒体片段的时长,单位为秒。
客户端播放器获取m3u8文件后,从每个EXTINF段中提取视频片段的url,然后向服务器端获取这些媒体片段,得到服务器端响应后,解码并播放。播放器随后根据m3u8文件获取下一个视频分片。
由于m3u8本身,以及m3u8文件中每个url都是明文,因此,某些用户出于某些目的,可以根据m3u8文件中的URL列表,并发的、批量的从服务器端获取视频片段,并在本地拼装成独立的视频文件,非法分享给其他用户,给视频运营商、视频的版权方等造成损失。目前网上已经有很多m3u8的浏览器下载插件,用户输入m3u8的url,一个1小时的高清视频,通过4G网络,在半分钟内即可完成全部视频片段的下载及重新组装,并将拼装后的完整视频文件非法分享给其他用户,违法成本极低。
当前业界服务器端通常会通过判断HTTP请求中的referer或自定义HTTPheader,来区分用户的正常播放请求,和用户的批量下载请求。但对某些用户来说,可以根据正常播放请求中的header的值,来伪造HTTPheader,骗取服务器的信任。
同时,大型网络视频运营商后端的流媒体服务器,通常是以集群方式部署。不同用户的视频播放请求,以及同一用户对同一内容的不同视频分片的播放请求,将以负载均衡的方式,随机分配到集群中不同的流媒体服务器上,服务器上不保存用户的会话信息,因此,对于每个单独的服务器来说,很难识别出用户的并发、批量下载请求。
针对此问题,本申请提出一种用于防止m3u8视频被并发批量下载的方法,避免视频被非法窃取。
发明内容
本发明针对现有技术中的不足,提供一种用于防止m3u8视频被并发批量下载的方法;利用cookie、加密技术,使用户无法通过伪造HTTP请求从服务器端批量下载及自动组装视频片段文件,极大的增加用户的违法成本,避免视频被非法窃取。
为实现上述目的,本发明采用以下技术方案:
一种用于防止m3u8视频被并发批量下载的方法,包括以下步骤:
S1:视频服务商向服务器发布视频内容;
S2:用户播放视频时,客户端浏览器向服务器请求获取m3u8文件;
S3:服务器端将m3u8文件返回给客户端浏览器,并为客户端浏览器设置Cookie信息;
S4:客户端浏览器解析m3u8文件,随后将所需播放的一个视频片段向服务器端发起HTTP请求,并携带Cookie信息;
S5:服务器端获取Cookie信息,解密获取明文,判断当前处理的服务器是否需要调整,然后使对应的服务器响应对应的HTTP请求;
S6:对应的服务器端经对Cookie信息所记录的信息核实和更新后,将用户所需播放的视频片段内容文件以及更新后的Cookie信息一起返回给客户端浏览器;
S7:循环步骤S4-S6的内容完成整个视频内容的播放。
为优化上述技术方案,采取的具体措施还包括:
进一步地,步骤S1的具体内容为:视频服务商将m3u8文件中每个视频片段的url进行改写,然后将所有改写后的url′及原始url的对应关系,连同视频文件一起同步给视频服务器集群里的每个服务器中。
进一步地,步骤S2的具体内容为:客户端浏览器向视频服务器集群发起HTTP请求,视频服务器集群的负载均衡器将用户的请求路由到集群中某台服务器上,由该服务器响应客户端浏览器的请求。
进一步地,步骤S3的具体内容为:
对应的服务器将对应的m3u8文件返回给客户端浏览器,同时,服务器为客户端浏览器设置Cookie信息,其文件格式为:
hls_token=[uid,ver,server_info,video_seq_no_queue,timestamp_queue]
式中,hls_token表示为属性名;[...]表示为属性值,其中uid的值是唯一标识用户此次播放的视频ID;ver表示token生成算法的版本,以对Cookie信息进行加密,防止恶意用户破解Cookie信息来寻找服务器信息进而获取视频数据,同时token算法会不定期更新,服务器更新算法后设置缓冲期,在缓冲期内,服务器仍支持旧生成算法Token的处理;server_info是记录设置Cookie信息的服务器信息,包括服务器的ip和服务器的id;video_seq_no_queue记录有客户端浏览器最近n次请求播放的视频片段在m3u8文件中的url′序号;timestamp_queue记录有客户端浏览器最近n次视频片段请求在服务器端处理时的本地时间;
经ver表示token生成算法的加密后,Cookie信息的格式如下:hls_token=XXXXX,其中,XXXXX为加密后的Cookie信息属性值,并且服务器将Cookie信息首次反馈给客户端服务器时,内部的video_seq_no_queue和timestamp_queue均为空值。
进一步地,步骤S5的具体内容为:
视频服务器集群的负载均衡器,将客户端请求分配至集群内的一台服务器上,服务器获取Cookie信息中hls_token的值,解密获取明文,判断server_info中的服务器id和ip是否是当前服务器本机的信息,如果是,则开始处理该HTTP请求,否则,通过HTTP302重定向,将客户端请求重定向到server_info对应的服务器上。
进一步地,步骤S6的具体内容为:
服务器获取Cookie信息中video_seq_no_queue和timestamp_queue参数;
当video_seq_no_queue队列长度小于n时,则服务器直接将此次申请的视频片段url′序号和服务器本地时间戳更新至Cookie信息中的video_seq_no_queue和timestamp_queue队列,并将Cookie信息返回给客户端浏览器,同时根据url和url′的对应关系,将正确的视频片段内容文件也一并返回给客户端浏览器以进行播放;
当video_seq_no_queue队列长度等于n时,则服务器判断当前本机时间与timestamp_queue中记录的第一个时间戳相差是否小于一个视频片段的时间;如果小于,则拒绝客户端的此次请求;否则,正常响应此次请求,将此次申请的视频片段url′序号和服务器本地时间戳更新至Cookie信息中的video_seq_no_queue和timestamp_queue队列,并将Cookie信息返回给客户端浏览器,同时根据url和url′的对应关系,将正确的视频片段内容也一并返回给客户端浏览器以进行播放。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序使计算机执行如上述任一项所述防止m3u8视频被并发批量下载的方法。
一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如上述任一项所述防止m3u8视频被并发批量下载的方法。
本发明的有益效果是:
1、通过Cookie技术,将客户端的请求视频分片的序号和时间戳写入Cookie,服务器端对客户端当前请求的视频分片与历史请求的分片,进行规则比较,以此判断出是正常的播放请求,还是客户端使用工具在进行并发批量的视频片段下载,并对异常请求拒绝服务,同时对Cookie内容进行加密,用户无法伪造,进一步避免视频内容被窃取。
2、将m3u8中的视频片段的url进行变换,让客户端工具找不到文件规律,难以自动拼接成单独的视频文件。
附图说明
图1是本申请背景技术中提出的一种m3u8文件格式示例图。
图2是本申请整体技术方案流程示意图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
参考图1和图2,本申请的整体思路为:
1、在同一时间段内,限制响应来自同一客户端的并发的对视频分片的HTTP请求。例如,在每个视频片段的时长的时间内(例如20秒内),最多响应同一客户端对3个连续视频分片的并发请求。此处的并发请求的响应数量可配置。这样,客户端无法使用工具并发且批量的下载视频片段。具体实现方法,是将最近三次请求的视频分片在m3u8中的序号,以及服务器响应的时间戳纪录在Cookie中,每次HTTP请求都携带相同的Cookie,服务器端根据客户端当前获取的分片的序号和当前本地时间,与Cookie中的已处理的序号和时间,进行复杂的规则比较,即可判断出是浏览器的正常播放请求,还是用户使用专用下载工具的非法请求。
2.同时避免将原始的视频片段的URL直接暴露给客户端。在内容管理系统发布m3u8文件时,将每一个视频url进行随机改写,并将原始url和改写后的url的映射关系配置在视频服务器上。这样,因为每个URL都没有任何规律,因此,工具下载后的文件名也没有任何规律,最终,为客户端自动进行视频片段的拼装提高难度。
下面以具体的实施例进行说明:
1、视频服务商的内容管理系统向视频服务器发布内容。内容管理系统将m3u8文件中的每个视频片段的url进行改写,特别是对ts或mp4文件的文件名进行改写;
例如:“http://example.com/movie1/fileSequenceA.ts”
改写为“http://example.com/movie1/kdadasiw32ds.ts”。所有将改写后的url及原始url的对应关系,连同视频文件,一起同步给视频服务器集群里的每个服务器。
2、用户开始播放视频,客户端浏览器向服务器端获取m3u8文件。用户的浏览器从视频网页中获取视频的m3u8文件的URL,向视频服务器集群发起HTTP请求。视频服务器集群的负载均衡器,按预先配置的负载均衡策略,将用户的请求路由到集群中某台服务器上,由该服务器响应浏览器的请求。
3、服务器端将m3u8文件返回给客户端浏览器。服务器根据m3u8的URL,将对应的文件返回给客户端浏览器。同时,服务器为客户端设置Cookie,属性名可设为hls_token,其值的格式为“hls_token=[uid,ver,server_info,video_seq_no_queue,timestamp_queue]”。其中,uid的值为GUID,是唯一标识用户此次视频播放的ID,为128位的全局唯一标识符;ver代表token生成算法的版本,为防止用户破解token算法,token算法会不定期更新,服务器更新算法后,会设置缓冲期,如2小时,在缓冲期内,仍支持旧算法生成的Token的处理,缓冲期外,则服务器直接拒绝客户端的请求;server_info是设置cookie的服务器的信息,包括ip和服务器的id;video_seq_no_queue是播放器最近3次请求的视频片段在m3u8中的序号;timestamp_queue是播放器最近3次视频片段请求在服务器端处理时的本地时间。对整个token属性值进行加密,加密算法也可随着token算法的更新而更新。例如,cookie的属性值的样例为“hls_token=[6F9619FF-8B86-D011-B42D-00C04FC964FF,5,128.7.2.203server1,[5,6,7],[FriJan10202018:52:45GMT+0800,60,FriJan10202018:52:55GMT+0800,60,FriJan10202018:52:65GMT+0800,60]]”。经加密后,Cookie的格式如下:hls_token=XXXXX,其中,XXXXX为加密后的cookie的属性值。m3u8文件对应的HTTP响应中,hls_token中video_seq_no_queue和timestamp_queue均为空。
4、客户端浏览器解析m3u8文件,随后开始向服务器端发起HTTPGet请求,获取第一个视频分片。HTTP请求中携带hls_tokenCookie。
5、服务器集群的负载均衡器,将客户端请求分配至集群内一台服务器上。该服务器从HTTP请求中获取hls_token的值,解密获取明文,判断server_info中的服务器id和ip是否是本机信息,如果是,则开始处理该HTTP请求,否则,通过HTTP302重定向,将客户端请求重定向到server_info对应的服务器上。
6、server_info对应的服务器端先获取此次客户端申请的视频片段在m3u8中的序号;
当video_seq_no_queue队列长度小于3时,则服务器直接将此次申请的视频片段url′序号和服务器本地时间戳更新至Cookie信息中的video_seq_no_queue和timestamp_queue队列,并将Cookie信息返回给客户端浏览器,同时根据url和url′的对应关系,将正确的视频片段内容文件也一并返回给客户端浏览器以进行播放;
当video_seq_no_queue队列长度等于3时,则服务器判断当前本机时间与timestamp_queue中记录的第一个时间戳相差是否小于一个视频片段的时间;如果小于,则拒绝客户端的此次请求;否则,正常响应此次请求,将此次申请的视频片段url′序号和服务器本地时间戳更新至Cookie信息中的video_seq_no_queue和timestamp_queue队列,并将Cookie信息返回给客户端浏览器,同时根据url和url′的对应关系,将正确的视频片段内容也一并返回给客户端浏览器以进行播放。
7、客户端浏览器获取视频分片,并解码播放,随后携带相同的Cookie向服务器端获取下一个视频分片。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (8)
1.一种用于防止m3u8视频被并发批量下载的方法,其特征在于,包括以下步骤:
S1:视频服务商向服务器发布视频内容;
S2:用户播放视频时,客户端浏览器向服务器请求获取m3u8文件;
S3:服务器端将m3u8文件返回给客户端浏览器,并为客户端浏览器设置Cookie信息;
S4:客户端浏览器解析m3u8文件,随后将所需播放的一个视频片段向服务器端发起HTTP请求,并携带Cookie信息;
S5:服务器端获取Cookie信息,解密获取明文,判断当前处理的服务器是否需要调整,然后使对应的服务器响应对应的HTTP请求;
S6:对应的服务器端经对Cookie信息所记录的信息核实和更新后,将用户所需播放的视频片段内容文件以及更新后的Cookie信息一起返回给客户端浏览器;
S7:循环步骤S4-S6的内容完成整个视频内容的播放。
2.根据权利要求1所述的一种用于防止m3u8视频被并发批量下载的方法,其特征在于,步骤S1的具体内容为:视频服务商将m3u8文件中每个视频片段的url进行改写,然后将所有改写后的url′及原始url的对应关系,连同视频文件一起同步给视频服务器集群里的每个服务器中。
3.根据权利要求2所述的一种用于防止m3u8视频被并发批量下载的方法,其特征在于,步骤S2的具体内容为:客户端浏览器向视频服务器集群发起HTTP请求,视频服务器集群的负载均衡器将用户的请求路由到集群中某台服务器上,由该服务器响应客户端浏览器的请求。
4.根据权利要求3所述的一种用于防止m3u8视频被并发批量下载的方法,其特征在于,步骤S3的具体内容为:
对应的服务器将对应的m3u8文件返回给客户端浏览器,同时,服务器为客户端浏览器设置Cookie信息,其文件格式为:
hls_token=[uid,ver,server_info,video_seq_no_queue,timestamp_queue]
式中,hls_token表示为属性名;[...]表示为属性值,其中uid的值是唯一标识用户此次播放的视频ID;ver表示token生成算法的版本,以对Cookie信息进行加密,防止恶意用户破解Cookie信息来寻找服务器信息进而获取视频数据,同时token算法会不定期更新,服务器更新算法后设置缓冲期,在缓冲期内,服务器仍支持旧生成算法Token的处理;server_info是记录设置cookie信息的服务器信息,包括服务器的ip和服务器的id;video_seq_no_queue记录有客户端浏览器最近n次请求播放的视频片段在m3u8文件中的url′序号;timestamp_queue记录有客户端浏览器最近n次视频片段请求在服务器端处理时的本地时间;
经ver表示token生成算法的加密后,Cookie信息的格式如下:hls_token=XXXXX,其中,XXXXX为加密后的cookie信息的属性值,并且服务器将cookie信息首次反馈给客户端服务器时,内部的video_seq_no_queue和timestamp_queue均为空值。
5.根据权利要求4所述的一种用于防止m3u8视频被并发批量下载的方法,其特征在于,步骤S5的具体内容为:
视频服务器集群的负载均衡器,将客户端请求分配至集群内的一台服务器上,服务器获取Cookie信息中hls_token的值,解密获取明文,判断server_info中的服务器id和ip是否是当前服务器本机的信息,如果是,则开始处理该HTTP请求,否则,通过HTTP 302重定向,将客户端请求重定向到server_info对应的服务器上。
6.根据权利要求5所述的一种用于防止m3u8视频被并发批量下载的方法,其特征在于,步骤S6的具体内容为:
服务器获取Cookie信息中video_seq_no_queue和timestamp_queue参数;
当video_seq_no_queue队列长度小于n时,则服务器直接将此次申请的视频片段url′序号和服务器本地时间戳更新至Cookie信息中的video_seq_no_queue和timestamp_queue队列,并将Cookie信息返回给客户端浏览器,同时根据url和url′的对应关系,将正确的视频片段内容文件也一并返回给客户端浏览器以进行播放;
当video_seq_no_queue队列长度等于n时,则服务器判断当前本机时间与timestamp_queue中记录的第一个时间戳相差是否小于一个视频片段的时间;如果小于,则拒绝客户端的此次请求;否则,正常响应此次请求,将此次申请的视频片段url′序号和服务器本地时间戳更新至Cookie信息中的video_seq_no_queue和timestamp_queue队列,并将Cookie信息返回给客户端浏览器,同时根据url和url′的对应关系,将正确的视频片段内容也一并返回给客户端浏览器以进行播放。
7.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序使计算机执行如权利要求1-6任一项所述防止m3u8视频被并发批量下载的方法。
8.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如权利要求1-6任一项所述防止m3u8视频被并发批量下载的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211521521.2A CN116233499A (zh) | 2022-11-30 | 2022-11-30 | 一种用于防止m3u8视频被并发批量下载的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211521521.2A CN116233499A (zh) | 2022-11-30 | 2022-11-30 | 一种用于防止m3u8视频被并发批量下载的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116233499A true CN116233499A (zh) | 2023-06-06 |
Family
ID=86570352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211521521.2A Pending CN116233499A (zh) | 2022-11-30 | 2022-11-30 | 一种用于防止m3u8视频被并发批量下载的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116233499A (zh) |
-
2022
- 2022-11-30 CN CN202211521521.2A patent/CN116233499A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11350139B2 (en) | Video live broadcast method and apparatus | |
US8762564B1 (en) | Method and system for dynamically selecting, assembling and inserting content into stream media | |
EP2880866B1 (en) | Method and system for dynamically selecting, assembling and inserting content into streaming media | |
US8898303B2 (en) | Enterprise grade rights management | |
US20200177575A1 (en) | Merged video streaming, authorization, and metadata requests | |
TWI451279B (zh) | 即時或接近即時串流傳輸之內容存取控制 | |
JP5974392B2 (ja) | Isoベースメディアファイルフォーマットに基づく適応ストリーミングについてのセキュアな非同期イベント通知のためのシステム及び方法 | |
US8015167B1 (en) | Media players and download manager functionality | |
EP1959684A2 (en) | Dynamic advertising control | |
US20120017282A1 (en) | Method and apparatus for providing drm service | |
US8817983B2 (en) | Streaming video to cellular phones | |
CN109996095B (zh) | 一种网络视频点播防止盗链播放的方法、系统及介质 | |
US20160127435A1 (en) | Method for Delivering Advertising Content and/or Advertising Media and Communication System for Performing the Method | |
US11463741B2 (en) | Methods and systems for dynamic routing of content using a static playlist manifest | |
US10021195B2 (en) | Cross-device synchronization system for account-level information | |
US20150046939A1 (en) | Seamless multi-channel tv everywhere sign-n | |
US8175267B2 (en) | Communication apparatus, communication system, transmission method, and computer program product | |
US20150095483A1 (en) | Communications terminal, transfer terminal, and content publication method | |
CN108366097B (zh) | 资源访问控制方法及系统 | |
CN111225248B (zh) | 点播内容的管理方法及内容分发网络点播服务器 | |
CN116233499A (zh) | 一种用于防止m3u8视频被并发批量下载的方法 | |
KR100835528B1 (ko) | 구간정보를 이용한 멀티미디어 콘텐츠의 스트리밍 방법 및그 스트리밍 단말기 | |
KR20030046817A (ko) | 예약분산전송을 통한 멀티미디어 데이터 전송방법 | |
US9936264B1 (en) | Method of restricting offline video playback to include advertisements | |
WO2017113726A1 (zh) | 广告下载方法、客户端和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |