pwp 发表于 2020-7-10 08:34

M3U8批量下载器 V1.4.7 http方式调用之Python的实现

本帖最后由 pwp 于 2021-3-7 03:01 编辑

@逍遥一仙大佬更新了他的m3u8下载器:
M3U8批量下载器 V1.4.7【2月26日更新】
https://www.52pojie.cn/thread-1374045-1-1.html
(出处: 吾爱破解论坛)
苦逼的我不会易语言,上次经过多次实验和逍遥大仙的帮助下,作为新手花了几天成功憋出一堆粗糙的http调用代码,推送到他的下载器下载m3u8。

今天再用他的下载器,发现更新了很多功能,再次把代码更新一下,以便大家调用:

import base64
import requests

def postToCuteM3U8(title,m3u8Url,HEAD='',OUT='',NFAIL=0,CLOSE=0,CHECK=0,KEY='',CACHE=0,NKEY=0,NETCHECK=0,NTSCHECK=0,IDOWN=0,NCONCAT=0,AGENT='',FORMAT='mp4',DECMETHOD='cbc',**kwargs):
    print('hello')
    data ={
      '#HEAD':HEAD,
      '#OUT':OUT,
      '#NFAIL':NFAIL,
      '#CLOSE':CLOSE,
      '#CHECK':CHECK,
      '#KEY':KEY,
      '#CACHE':CACHE,
      '#NKEY':NKEY,
      '#NETCHECK':NETCHECK,
      '#NTSCHECK':NTSCHECK,
      '#IDOWN':IDOWN,
      '#NCONCAT':NCONCAT,
      '#AGENT':AGENT,
      '#FORMAT':FORMAT,
      '#DECMETHOD':DECMETHOD,
    }
    datastr =''
    for key in data.keys():
      #print(key,data)
      if(data):
            datastr = datastr + str(key)+','+str(data)+'\r\n'
    datastr =datastr + title+',' + m3u8Url#datastr是配置内容
    postdata = {
      "data":datastr,
      "type":'2' #模式2
    }
    try:
      r = requests.post('http://127.0.0.1:8787/', data=postdata)
      if(r.json()['message']=='success'):
            print('推送成功')
      else:
            print('推送失败')
    except:
      print('没有打开M3U8下载器吧?')
if __name__ == '__main__':
    #参数对照逍遥一仙配置文件结构中所列出的可选参数给就行了,比如想改保存路径就传一个参数 OUT='D:\\test\\'
    postToCuteM3U8(title='我是文件标题', m3u8Url='http://xxx.xxx.com/m3u8file.m3u8', KEY='2vi5S5yDJNRzgW4rhEX8A==',OUT='D:\\test\\')
    postToCuteM3U8(title='我是文件标题', m3u8Url='http://xxx.xxx.com/m3u8file.m3u8')

调用实例已放在main函数里,这里就不赘述了。这么好用的下载器配这么好用的代码,难道你忍心不给个评分么?

漁滒 发表于 2020-7-10 11:46

增加一下捕获异常和推送后的提示
import requests
import base64

def posttom3u8(key, title, url):
    data = '#KEY,{0}\r\n{1},{2}'.format(key, title, url) if key else '{0},{1}'.format(title, url)
    try:
      response = requests.post('http://127.0.0.1:8787/', data={"data": base64.b64encode(data.encode('GBK')).decode()}).json()
      print('推送成功') if response['message'] == 'success' else print('推送失败')
    except:
      print('推送失败')

kindbigbear0 发表于 2020-11-10 20:47

key加密的也能搞吗?
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-KEY:METHOD=AES-128,URI="https://hls.videocc.net/4392459050/5/4392459050dce95c341196249a19fb25_1.key",IV=0x82e12501613344b011d00f8b8dc217d0
#EXT-X-TARGETDURATION:18
#EXTINF:10.080000,
https://ab-mts.videocc.net/4392459050/0/1234567890123/5/19/fb/25_1/4392459050dce95c341196249a19fb25_1_0.ts
#EXTINF:6.560000,
https://ab-mts.videocc.net/4392459050/0/1234567890123/5/19/fb/25_1/4392459050dce95c341196249a19fb25_1_1.ts
#EXTINF:10.000000,
https://ab-mts.videocc.net/4392459050/0/1234567890123/5/19/fb/25_1/4392459050dce95c341196249a19fb25_1_2.ts
#EXTINF:10.000000,
https://ab-mts.videocc.net/4392459050/0/1234567890123/5/19/fb/25_1/4392459050dce95c341196249a19fb25_1_3.ts

pwp 发表于 2020-7-10 08:38

抛砖引玉,更多功能等待大佬们的挖掘

mokson 发表于 2020-7-10 08:44

anlove6666 发表于 2020-7-10 08:46

我也看不懂,小白一枚

算法分析 发表于 2020-7-10 08:47

lizhipei78 发表于 2020-7-10 08:50

我们要的是成品,其它的啥也看不懂得

pwp 发表于 2020-7-10 08:51

lizhipei78 发表于 2020-7-10 08:50
我们要的是成品,其它的啥也看不懂得

:lol成品需要自制啊

12692873 发表于 2020-7-10 08:54

这是牛人才能看得懂的,与我们平民无关

pwp 发表于 2020-7-10 08:58

12692873 发表于 2020-7-10 08:54
这是牛人才能看得懂的,与我们平民无关

膜拜大佬注册时间

zhu0598 发表于 2020-7-10 09:24

感谢大佬,本小白也看懂了!
页: [1] 2 3 4
查看完整版本: M3U8批量下载器 V1.4.7 http方式调用之Python的实现