mac下使用pyhon+mimtdump 爬取m3u8

mac下使用pyhon+mimtdump 爬取m3u8

pyhon代码

test.py文件

# -*- coding: utf-8 -*-
import json
import threading

import requests
import subprocess, sys, os


def check_json_format(raw_msg):
    """ 用于判断一个字符串是否符合Json格式 :param self: :return: """
    if isinstance(raw_msg, str):  # 首先判断变量是否为字符串
        try:
            json.loads(raw_msg, encoding='utf-8')
        except ValueError:
            return False
        return True
    else:
        return False


def response(flow):
	#例如:
    # https://open.com/43567890/TYUI678/678iu.m3u8
    # http://abc.com/api/play/5678?uuid=tyu567tyu789&device=0

    url = 'api/play'
    if url in flow.request.url:
        text = flow.response.text
        if check_json_format(text):
            data_json = json.loads(text)
            if data_json and data_json.get('resp').get('path'): #判断json中有这些节点
                rescont = data_json.get('resp')
                videopath = rescont.get('path')
                title = rescont.get('title')
                print(videopath)
                filename = title + '.mp4'
                print(filename)
                t = threading.Thread(target=exec_cmd(videopath, filename))  # 创建一个线程
                t.start()  # 启动线程
                print( filename,'下载完成')


def exec_cmd(videopath, filename):
    cmd = 'ffmpeg -i ' + videopath + ' -c copy ' + filename
    print(cmd)
    cmd = cmd.encode(sys.getfilesystemencoding())
    print(cmd)
    subprocess.call(cmd, shell=True)

MAC下准备工作

  • 安装m3u8合成工具
    brew install ffmpeg
  • 安装代理工具
    brew install mitmproxy

使用方法

  • 在bash下运行:
    mitmdump -s test.py -p 8888
  • 连代理
    把手机wifi连到电脑上(查电脑ip,如192.168.0.xxx),端口8888
    1.修改网络
    2.显示高级选项
    3.选代理、手动,填ip、端口

关于ssl(报错问题)

连上代理后,手机浏览器打开http://mitm.it/按页面说明步骤操作(ios,android各不同)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100402.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linuxshell(find sed awk vi)-note

    linuxshell(find sed awk vi)-note

    2021年8月29日
    75
  • 镁光(Micron)存储器根据丝印找具体型号(datasheet)的方法[通俗易懂]

    镁光(Micron)存储器根据丝印找具体型号(datasheet)的方法[通俗易懂]镁光(Micron)存储器根据丝印找具体型号(datasheet)的方法

    2022年6月22日
    101
  • 命令行查看cuda版本_ubuntu查看cudnn版本

    命令行查看cuda版本_ubuntu查看cudnn版本linux查看cuda版本1.cat/usr/local/cuda/version.json2.或者nvcc-V(注意是大写)3nvidia-smi1和3中显示的是11.32中显示的是10.1CUDA有两个主要的API:runtime(运行时)API和driverAPI。这两个API都有对应的CUDA版本(如10.1和11.3等)。用于支持driverAPI的必要文件(如libcuda.so)是由GPUdriverinstaller安装的nvidia-smi就属于

    2022年8月30日
    5
  • 史上最全 Java 多线程面试题及答案「建议收藏」

    史上最全 Java 多线程面试题及答案「建议收藏」这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。1、多线程有什么用? 一个可能在很多人…

    2022年8月27日
    5
  • 电商后台管理系统项目总结(一)

    电商后台管理系统项目总结(一)项目模块分析:用户管理模块、权限管理模块、商品管理模块、订单管理模块、数据统计模块各模块技术点:用户管理模块登录/退出、状态切换、编辑、分页、分配角色、面包屑导航切换权限管理模块添加角色、分配权限、权限展示、编辑、删除权限、面包屑导航切换商品管理模块添加商品、编辑、分页、添加参数、添加属性、选择分类、添加分类订单管理模块数据渲染、分页数据统计模块echarts图表、数据渲染用户管理模块展示:权限管理模块展示:商品管理模块展示:订单管理模块展示:数据统计模块效果

    2022年5月7日
    309
  • Log:Spdlog初探(1)

    Log:Spdlog初探(1)文章目录Log:Spdlog初探简介spdlog简介安装/使用Headeronlyversion编译静态库Linux版本Windows版本代码说明设置日志输出样式Log:Spdlog初探简介公司需要开新项目,提议更换日志库,交给我让我调研一下spdlog库的使用。spdlog简介Github地址:Github地址官网介绍:Veryfast,header-only/compile…

    2022年6月23日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号