woo 代码如下:

已经在gitee开源:https://gitee.com/oshine/woo_spider

PS:运行前注意,一般爬虫网站会要求有refer,请把对应的refer填写到下方代码中,在运行


local args=_args()
-- _out(args)if #args<3 thenprint('缺少参数:例如:woo m3u8.woo  m3u8索引文件地址  保存文件名')return
end-- 创建文件夹,忽略结果
_mkdir(args[3])print('索引文件和索引片段将会保存到文件夹:',args[3])local http =woo.http:new()local headers= {['Referer']='这里填写refer',['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74' }local res,err=http.request('get', args[2], { headers = headers })if err thenprint(ok)return
endlocal url_prefix=_sub_ex('ne',args[2],'/')local download = function (name)local r,e=http.request('get',url_prefix..'/'..name, { headers = headers })if e thenprint('下载索引片段失败!',e)returnend_file_save(args[3]..'/'..name,r.body)print('下载索引片段完成!',name)
end_file_save(args[3]..'/index.m3u8',res.body)print('保存m3u8索引文件到磁盘完毕')print('m3u8索引文件下载成功,开始解析m3u8索引片段。。。')-- #EXTM3U
-- #EXT-X-VERSION:3
-- #EXT-X-MEDIA-SEQUENCE:0
-- #EXT-X-ALLOW-CACHE:YES
-- #EXT-X-TARGETDURATION:11
-- #EXTINF:5.846178,
-- 0000.ts
-- #EXTINF:4.771444,
-- 0001.ts
-- #EXTINF:7.374033,local lines = _str_split(res.body,'\n')
if #lines<1 thenprint('m3u8 文件内容为空')return
endlocal next_line=false
local to_be_download={}for _, line in pairs(lines) doif next_line thento_be_download[#to_be_download+1]=linenext_line=falseelseif _begin_with(line,'#EXTINF:') thennext_line=trueendend
endlines=nillocal total= #to_be_downloadprint('解析m3u8索引文件完毕,共有索引片段',total)for i, name in pairs(to_be_download) doprint('开始下载索引片段('..tostring(i)..'/'..tostring(total)..'):'..name)download(name)
end

下载完毕后,使用里面的播放器 player.html来播放m3u8文件

woo语言实现 m3u8流媒体视频文件 下载并播放相关推荐

  1. m3u8解析_浅谈m3u8格式视频文件采集

    在对某在线视频网站抓包分析时,发现该站点采用m3u8格式进行视频文件传输. 通过m3u8的response可以看到,m3u8格式文件由很多段ts文件组成.那么什么是m3u8,什么是ts呢? M3U8是 ...

  2. C#中读取流媒体视频文件转H.264具体实现方法

    现在有越来越多的人在使用C#语言做编程,但我发现好像用C#做音视频流媒体开发的比较少.我们的libEasyScreenLive目前支持Windows,Android平台,通过EasyScreenLiv ...

  3. Nginx增加m3u8流视频文件功能模块 推流和拉流

    Nginx增加m3u8流视频文件功能模块 推流和拉流 FastDFS分布式文件系统安装和配置_亲测成功 ./configure --prefix=/u06/data/apps/nginx-rtmp \ ...

  4. woo语言一行代码批量修改文件名称

    woo语言一行代码 批量修改文件名称 1.windows平台 – 下方代码在需要修改的文件夹内使用cmd执行即可,把wo后缀修改为woo后缀: woo.exe -r "a = _args() ...

  5. iOS视频边下载边播放

    随着视频行业的发展,很多用户对于观看体验也有了更高的要求,以前的习惯是下载好了在观看,而现在是希望1分钟都不要等,ZUI好一边看着一边下载,等把这个视频看完也下载完了,也就是我们常说的"视频 ...

  6. 视频文件损坏无法播放怎么修复?

    有很多原因可能导致视频文件损坏无法播放,如: 病毒和漏洞:漏洞和病毒是计算机的噩梦,它们可以攻击存储在硬盘上的文件和视频.如果没有杀毒程序,视频文件很容易受到损坏. 盗版视频转换器:一些视频转换器不是 ...

  7. mp4视频文件损坏无法播放怎么修复?

    对于喜好分享想小伙伴,都会拍摄各种各样的视频,然后在对拍摄好的视频文件进行编辑处理,这样才能展现出更多的精彩瞬间,但有时在处理视频素材时,会发现视频已经损坏,无法正常播放.这种情况下,我们很难再进行二 ...

  8. 佳能R5相机断电0KB字节DAT视频文件无法打开播放怎么数据恢复MP4

    佳能相机录制视频过程如遇到异常状况,比如说录着录着突然电池没电,人为误操作没关机前电池或者卡被意外拨出,死机,相机摔落等等意外中断录制的情况,有可能导致录制中的MP4视频变为扩展名为DAT的文件,有时 ...

  9. 将.m3u8转换为视频文件保存到本地

    实现将一直的视频流文件保存到本地,需要 安装ffmpeg 视频流文件地址 使用ffmpeg安装包中的ffplay.exe实现视频的播放: ffplay http://edge.linknetott.s ...

最新文章

  1. python的GUI之Tkinter的Label组件
  2. delphi json
  3. How to find root cause of creation navigation failure
  4. 使用noConclict后仍然能够在函数体内继续使用$的方法
  5. getopt()简介
  6. mybatis-plus实现自动填充数据如:数据库中createTime和updateTime
  7. 五月数据库技术通讯丨Oracle 12c因新特性引发异常Library Cache Lock等待
  8. 公路建设项目管理软件
  9. 网易邮箱发送失败服务器连接失败,网易邮件发送不出去MI:SFQ错误
  10. 《如何写好科研论文》网课课后习题答案完整版
  11. 【按键】[独立按键] - 2:双击
  12. C#反编译工具:.NET Reflector基础使用
  13. 计算机硬件希沃课件,希沃课件怎么转为ppt?
  14. Python 将矩形图片转为圆形图片
  15. mac ssh常见问题
  16. 成为合格插画设计师的要点
  17. 淘宝/天猫api数据接口,获得淘宝商品详情 API 返回值说明
  18. 【H5】h5文件之——深度学习训练样本制作
  19. 小米Max2 LineageOS编译过程 ubuntu
  20. 白话firefox扩展插件权限索取的说明(专业版)

热门文章

  1. 【聆思CSK6视觉AI开发套件试用】AI手势检测识别+编译Helloworld示例
  2. 计算机专业班级工作计划,网络计算机班班主任工作计划
  3. Windows 7远程桌面登录时崩溃
  4. python培训报告,简述Python语言经验总结_python知识点总结_python培训
  5. Mentor_丝印检查——手工绘制丝印线条(标注)到丝印位号距离的检查
  6. 什么是城府?你做到了你就无敌了!
  7. Google 三架马车:GFS、BigTable、MapReduce
  8. HNUST--2187 最小生成树(邻接矩阵或邻接表)
  9. 雄文 | VAS 对标的不是ETH而是Libra
  10. Linux安装Elasticsearch详细教程