码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python 编写m3u8视频格式下载小工具


    # coding:utf-8     设置编码格式
    import requests   #引入requests
    from bs4 import BeautifulSoup
    import re   #引入正则
    import lxml
    import os
    import threading
    
    #解析m3u8文件
    def parse_m3u8(file):
        with open(file, 'r') as f:
            lines = f.readlines()
    
        playlist = []
        for line in lines:
            if line.startswith('#'):
                continue  # 跳过以 # 开头的行
            line = line.strip()  # 删除行尾的空格和换行符
            playlist.append(line)  # 添加到播放列表
    
        return playlist
    
    # m3u8_file = 'path_to_your_m3u8_file.m3u8'
    # playlist = parse_m3u8(m3u8_file)
    # print(playlist)
    
    # 下载m3u8文件
    def download_file(url, save_path):
        print(f'开始下载 {url} ...')
        #response = requests.get(url, stream=True)
        response = requests.get(url)
        try:
          response.raise_for_status()
        except  Exception as e:
          print('下载失败,重新下载')
          download_file(url, save_path)
        #save_file(save_path, response.raw)
        save_file(save_path, response.content)
        print(f'{url} 下载完成.')
    #保存文件
    def save_file(file_name, file_stream):
        with open(file_name, 'wb') as output_file:
            #shutil.copyfileobj(file_stream, output_file)
            output_file.write(file_stream)
    
    url="https://hot.1080pzy.co/20230930/nC1QVsQO/1000kb/hls/index.m3u8?_t=1696133646596"
    
    #下载m3u8视频文件列表
    response=requests.get(url)   #请求返回内容
    headers=response.headers     #响应头信息
    content=response.text        #响应body信息
    with open('list.txt', "w", encoding='utf-8') as f:
        f.write(content)
    print('下载m3u8视频文件列表ok')
    
    #解析文件列表
    playlist = parse_m3u8('list.txt')
    id=1
    
    for part in playlist:
        if id<10:
          download_file(part,str(id).zfill(6)+'.ts')
    
          id=id+1
    
    print('下载完成')
    
    #cmd合并文件
    #copy /b   *.ts   new.mp4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69

    python 编写m3u8视频格式下载小工具

  • 相关阅读:
    延宕执行,妙用无穷,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中defer关键字延迟调用机制使用EP17
    11_printf函数移植串口通信
    外包干了2个月,技术倒退2年。。。
    no main manifest attribute, in ./XXX.jar,如何解决?
    [CG从零开始] 4. pyopengl 绘制一个正方形
    电影《平凡英雄》
    会话管理(Cookie和Session)知识点总结-DX的笔记
    设计模式之工厂方法模式--更加符合开闭原则的工厂模式
    微服务部署上线过程总结
    【思科设备命令最全合集,快快收藏!】
  • 原文地址:https://blog.csdn.net/wkj001/article/details/133972694
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号