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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安全视角下的CAN协议分析

    安全视角下的CAN协议分析目录相关背景CAN节点介绍CAN帧结构介绍CAN总线攻击面分析CAN总线安全缺陷基于ID的仲裁机制安全缺陷针对CAN总线的攻击方式[2]参考文章相关背景控制器局域网(CANbus)由罗伯特·博世公司于1983年开发。该协议于1986年美国密歇根州底特律市举行的国际汽车工程师学会(SAE)会议上正式发表。第一个CAN控制芯片,由英特尔和飞利浦生产,并且于1987年发布。世界上第一台装载了基于CAN的多重线系统的汽车是1991年推出的梅赛德斯-奔驰W140。..

    2022年6月28日
    35
  • Jmeter参数化请求

    Jmeter参数化请求参数化请求

    2025年9月19日
    0
  • Pycharm全局搜索快捷键失效「建议收藏」

    Pycharm全局搜索快捷键失效「建议收藏」问题很久没用pycharm的全局收缩快捷键。今天一用,发现用不了。后面才发现是与win10自带的输入法的繁简体切换快捷键冲突了。解决

    2022年5月6日
    100
  • 为matlab GUI添加背景图片

    为matlab GUI添加背景图片为matlabGUI添加背景图片为GUI添加一个背景图片,不仅可以让我们的界面变得漂亮大气上档次,而且软件对与用户的交互更加友好。用C或者C++写过软件界面的人都知道,这件事情可以轻而易举的办到,那么问题来了,怎么为matlab的GUI添加一个背景图片呢?其实这个操作也很简单,但是如果是第一次做这个,可能需要折腾好久。在这里我希望跟大家分享一下这个小技巧,避免大家遇到同样的问题再走弯路。欢迎…

    2022年6月12日
    34
  • xsync配置

    xsync配置在~/bin建立xsync:#!/bin/bash#1获取输入参数个数,如果没有参数,直接退出pcount=$#if((pcount==0));thenechonoargs;exit;fi#2获取文件名称p1=$1fname=`basename$p1`echofname=$fname#3获取上级目录到绝对路径pdir=`cd-P$(dirname$p1);pwd`echopdir=$pdir#4获取当前用户名称us

    2022年6月2日
    108
  • jpg和jpeg的区别是什么_jpeg和jpg的区别是什么

    jpg和jpeg的区别是什么_jpeg和jpg的区别是什么jpg与jpeg的区别在哪

    2022年8月1日
    6

发表回复

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

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