hm3u8dl-cli


Namehm3u8dl-cli JSON
Version 0.4.9 PyPI version JSON
download
home_pagehttps://github.com/hecoter/hm3u8dl_cli
Summarym3u8视频解析,下载,解密,合并的python程序,支持全平台
upload_time2022-12-14 13:04:20
maintainerhecoter
docs_urlNone
authorhecoter
requires_python
licenseMulanPSL2
keywords m3u8 aes decrypt download parse
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # hm3u8dl python m3u8视频下载器

python version ≥ 3.7

推荐在终端中使用,在pycharm中使用时请设置 `在输出控制台中模拟终端`

视频介绍:

一款功能强大的m3u8下载器 hm3u8dl : https://www.bilibili.com/video/BV1hP4y1975u

<iframe src="//player.bilibili.com/player.html?aid=903264758&bvid=BV1hP4y1975u&cid=911754111&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>

## 1 特性

解密类:

1. 支持AES-128-CBC , AES-128-ECB , SAMPLE-AES-CTR , cbcs , SAMPLE-AES,copyrightDRM解密
1. 对部分链接支持魔改,自动出key

实用类:

1. 支持多线程下载,断点续传,自动解密

2. 支持多方式加载m3u8文件:链接、本地文件链接,文件夹

3. 自带ffmpeg 等必要文件,无需配置环境变量

4. 支持master 列表选择

5. 支持日志记录

6. 支持在终端中使用

7. 输出彩色信息,且只有一行,方便批量爬取视频

8. 支持 windows mac linux,全平台通用

9. 支持下载出错自动跳过

9. 随机请求头

9. GUI 版本正在测试

   

## 2 参数介绍

```
必填参数:
  m3u8url      	m3u8网络链接、本地文件链接、本地文件夹链接、txt文件内容

非必填参数:
  -h, --help    show this help message and exit
  -title        视频名称
  -method       解密方法
  -key          key
  -iv           iv
  -nonce        nonce 可能用到的第二个key
  -enable_del	下载完删除多余文件
  -merge_mode	1:二进制合并,2:二进制合并完成后用ffmpeg转码,3:用ffmpeg转码
  -base_uri     解析时的baseuri
  -threads      线程数
  -headers      请求头
  -work_dir     工作目录
  -proxy        代理:{'http':'http://127.0.0.1:8888','https:':'https://127.0.0.1:8888'}
```

## 3 GUI 版使用



按照界面提示输入即可

<img src="https://gitee.com/hecoter/blog/raw/master/imags/QQ%E6%88%AA%E5%9B%BE20221207202346.png" style="zoom:50%;" />

<img src="https://gitee.com/hecoter/blog/raw/master/imags/QQ%E6%88%AA%E5%9B%BE20221207202404.png" style="zoom:50%;" />

<img src="https://gitee.com/hecoter/blog/raw/master/imags/QQ%E6%88%AA%E5%9B%BE20221207202410.png" style="zoom:50%;" />

<img src="https://gitee.com/hecoter/blog/raw/master/imags/0.png" style="zoom:50%;" />

## 4 CLI版 使用

安装:

```
pip install --upgrade hm3u8dl_cli
```

```
m3u8download('https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8',title='132')
```

或者采用实例化对象的方法进行使用:

```
from hm3u8dl_cli.util import M3U8InfoObj
from hm3u8dl_cli import m3u8download

m3u8InfoObj = M3U8InfoObj() # 示例化一个m3u8Info对象

m3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'
m3u8InfoObj.title = '标题'

m3u8download(m3u8InfoObj) # 只需填一个参数
```

#### m3u8url 示例(必填)

```
from hm3u8dl_cli import m3u8download
m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8' # 网络链接
# m3u8url = r"C:\Users\hecot\Desktop\m3u8文件夹" # 文件夹
# m3u8url = r"C:\Users\hecot\Downloads\4adf37ccc0342e919fef2de4d02b473a_3 (3).m3u8"  # 本地文件
# m3u8url = r"C:\Users\hecot\Desktop\新建 文本文档.txt" # txt 文件
""" txt 文件内容格式: title,m3u8url,key
文件标题1,C:\Users\hecot\Desktop\m3u8文件夹\1.m3u8
文件标题2,C:\Users\hecot\Desktop\m3u8文件夹\1.m3u8
"""
m3u8download(m3u8url,merge_mode=3)
```

#### title 示例(选填)

```
from hm3u8dl_cli import m3u8download
m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'
title = '标题'
m3u8download(m3u8url)
```

#### method 示例(选填)

一般可自动识别

```
None、AES-128、AES-128-ECB、CHACHA、copyrightDRM、FakeImage、Widevine
```

#### key (选填)

一般可自动识别,用于自定义key

支持base64,hex,字节各类格式

```
from hm3u8dl_cli import m3u8download
m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'
key = 'kQ2aSmyG1FDSmzpqTso/0w=='
# key = b'\x91\r\x9aJl\x86\xd4P\xd2\x9b:jN\xca?\xd3'
# key = '910d9a4a6c86d450d29b3a6a4eca3fd3'
m3u8download(m3u8url,key=key)
```

#### iv(选填)

一般可自动识别,用于自定义iv

同Key

#### nonce (选填)

CHACHA 解密需使用此参数,用法同key

#### enable_del(选填)

下载完成后删除多余文件,`bool`型,默认`True`

```
from hm3u8dl_cli import m3u8download
from hm3u8dl_cli.util import M3U8InfoObj

m3u8InfoObj = M3U8InfoObj()

m3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'
m3u8InfoObj.enable_del = False

m3u8download(m3u8InfoObj)
```

#### merge_mode (选填)

视频合并类型,`int `型

1:二进制合并,2:二进制合并完成后用ffmpeg转码,3:用ffmpeg转码

推荐使用3,鉴于你的电脑可能没有配置ffmpeg 环境,因此默认为 1 

FFmpeg 环境配置 : [FFmpeg 环境配置 · Discussion #23 · hecoter/hm3u8dl_cli (github.com)](https://github.com/hecoter/hm3u8dl_cli/discussions/23)

```
from hm3u8dl_cli import m3u8download
from hm3u8dl_cli.util import M3U8InfoObj

m3u8InfoObj = M3U8InfoObj()

m3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'
m3u8InfoObj.merge_mode = 3

m3u8download(m3u8InfoObj)
```

#### threads (选填)

下载线程数,`int `型,自动读取电脑配置,默认为 cpu核数

#### headers (选填)

请求头,`dict` 型,默认随机请求头

```
from hm3u8dl_cli import m3u8download
from hm3u8dl_cli.util import M3U8InfoObj

m3u8InfoObj = M3U8InfoObj()

m3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'
m3u8InfoObj.headers = {
    'User-Agent':'iphone',
    'Referer':'https://ntp.msn.cn/',
    'Cookie':None
}
m3u8download(m3u8InfoObj)
```

#### work_dir (选填)

工作目录,默认  ./Downloads 

```
from hm3u8dl_cli import m3u8download
from hm3u8dl_cli.util import M3U8InfoObj

m3u8InfoObj = M3U8InfoObj()

m3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'
m3u8InfoObj.work_dir = r'C:\Users\hecot\Desktop'

m3u8download(m3u8InfoObj)
```

#### proxy (选填)

代理,`dict` 型,默认使用系统代理

```
from hm3u8dl_cli import m3u8download
from hm3u8dl_cli.util import M3U8InfoObj

m3u8InfoObj = M3U8InfoObj()

m3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'
m3u8InfoObj.proxy = {'http': 'http://127.0.0.1:8080', 'https': 'https://127.0.0.1:8080', 'ftp': 'ftp://127.0.0.1:8080'}
# m3u8InfoObj.proxy = {'http': 'http://127.0.0.1:8080', 'https': 'https://127.0.0.1:8080', 'ftp': 'ftp://127.0.0.1:8080'}

m3u8download(m3u8InfoObj)
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/hecoter/hm3u8dl_cli",
    "name": "hm3u8dl-cli",
    "maintainer": "hecoter",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "hecoter12138@gmail.com",
    "keywords": "m3u8 AES decrypt download parse",
    "author": "hecoter",
    "author_email": "hecoter12138@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/af/0b/2bce908db01d357349c2f0b095173acdd4ae1f40457f88465f1d1e6f5771/hm3u8dl_cli-0.4.9.tar.gz",
    "platform": "all",
    "description": "# hm3u8dl python m3u8\u89c6\u9891\u4e0b\u8f7d\u5668\r\n\r\npython version \u2265 3.7\r\n\r\n\u63a8\u8350\u5728\u7ec8\u7aef\u4e2d\u4f7f\u7528\uff0c\u5728pycharm\u4e2d\u4f7f\u7528\u65f6\u8bf7\u8bbe\u7f6e `\u5728\u8f93\u51fa\u63a7\u5236\u53f0\u4e2d\u6a21\u62df\u7ec8\u7aef`\r\n\r\n\u89c6\u9891\u4ecb\u7ecd\uff1a\r\n\r\n\u4e00\u6b3e\u529f\u80fd\u5f3a\u5927\u7684m3u8\u4e0b\u8f7d\u5668 hm3u8dl : https://www.bilibili.com/video/BV1hP4y1975u\r\n\r\n<iframe src=\"//player.bilibili.com/player.html?aid=903264758&bvid=BV1hP4y1975u&cid=911754111&page=1\" scrolling=\"no\" border=\"0\" frameborder=\"no\" framespacing=\"0\" allowfullscreen=\"true\"> </iframe>\r\n\r\n## 1 \u7279\u6027\r\n\r\n\u89e3\u5bc6\u7c7b\uff1a\r\n\r\n1. \u652f\u6301AES-128-CBC , AES-128-ECB , SAMPLE-AES-CTR , cbcs , SAMPLE-AES\uff0ccopyrightDRM\u89e3\u5bc6\r\n1. \u5bf9\u90e8\u5206\u94fe\u63a5\u652f\u6301\u9b54\u6539\uff0c\u81ea\u52a8\u51fakey\r\n\r\n\u5b9e\u7528\u7c7b\uff1a\r\n\r\n1. \u652f\u6301\u591a\u7ebf\u7a0b\u4e0b\u8f7d\uff0c\u65ad\u70b9\u7eed\u4f20\uff0c\u81ea\u52a8\u89e3\u5bc6\r\n\r\n2. \u652f\u6301\u591a\u65b9\u5f0f\u52a0\u8f7dm3u8\u6587\u4ef6\uff1a\u94fe\u63a5\u3001\u672c\u5730\u6587\u4ef6\u94fe\u63a5\uff0c\u6587\u4ef6\u5939\r\n\r\n3. \u81ea\u5e26ffmpeg \u7b49\u5fc5\u8981\u6587\u4ef6\uff0c\u65e0\u9700\u914d\u7f6e\u73af\u5883\u53d8\u91cf\r\n\r\n4. \u652f\u6301master \u5217\u8868\u9009\u62e9\r\n\r\n5. \u652f\u6301\u65e5\u5fd7\u8bb0\u5f55\r\n\r\n6. \u652f\u6301\u5728\u7ec8\u7aef\u4e2d\u4f7f\u7528\r\n\r\n7. \u8f93\u51fa\u5f69\u8272\u4fe1\u606f\uff0c\u4e14\u53ea\u6709\u4e00\u884c\uff0c\u65b9\u4fbf\u6279\u91cf\u722c\u53d6\u89c6\u9891\r\n\r\n8. \u652f\u6301 windows mac linux\uff0c\u5168\u5e73\u53f0\u901a\u7528\r\n\r\n9. \u652f\u6301\u4e0b\u8f7d\u51fa\u9519\u81ea\u52a8\u8df3\u8fc7\r\n\r\n9. \u968f\u673a\u8bf7\u6c42\u5934\r\n\r\n9. GUI \u7248\u672c\u6b63\u5728\u6d4b\u8bd5\r\n\r\n   \r\n\r\n## 2 \u53c2\u6570\u4ecb\u7ecd\r\n\r\n```\r\n\u5fc5\u586b\u53c2\u6570:\r\n  m3u8url      \tm3u8\u7f51\u7edc\u94fe\u63a5\u3001\u672c\u5730\u6587\u4ef6\u94fe\u63a5\u3001\u672c\u5730\u6587\u4ef6\u5939\u94fe\u63a5\u3001txt\u6587\u4ef6\u5185\u5bb9\r\n\r\n\u975e\u5fc5\u586b\u53c2\u6570:\r\n  -h, --help    show this help message and exit\r\n  -title        \u89c6\u9891\u540d\u79f0\r\n  -method       \u89e3\u5bc6\u65b9\u6cd5\r\n  -key          key\r\n  -iv           iv\r\n  -nonce        nonce \u53ef\u80fd\u7528\u5230\u7684\u7b2c\u4e8c\u4e2akey\r\n  -enable_del\t\u4e0b\u8f7d\u5b8c\u5220\u9664\u591a\u4f59\u6587\u4ef6\r\n  -merge_mode\t1:\u4e8c\u8fdb\u5236\u5408\u5e76\uff0c2\uff1a\u4e8c\u8fdb\u5236\u5408\u5e76\u5b8c\u6210\u540e\u7528ffmpeg\u8f6c\u7801\uff0c3\uff1a\u7528ffmpeg\u8f6c\u7801\r\n  -base_uri     \u89e3\u6790\u65f6\u7684baseuri\r\n  -threads      \u7ebf\u7a0b\u6570\r\n  -headers      \u8bf7\u6c42\u5934\r\n  -work_dir     \u5de5\u4f5c\u76ee\u5f55\r\n  -proxy        \u4ee3\u7406\uff1a{'http':'http://127.0.0.1:8888','https:':'https://127.0.0.1:8888'}\r\n```\r\n\r\n## 3 GUI \u7248\u4f7f\u7528\r\n\r\n\r\n\r\n\u6309\u7167\u754c\u9762\u63d0\u793a\u8f93\u5165\u5373\u53ef\r\n\r\n<img src=\"https://gitee.com/hecoter/blog/raw/master/imags/QQ%E6%88%AA%E5%9B%BE20221207202346.png\" style=\"zoom:50%;\" />\r\n\r\n<img src=\"https://gitee.com/hecoter/blog/raw/master/imags/QQ%E6%88%AA%E5%9B%BE20221207202404.png\" style=\"zoom:50%;\" />\r\n\r\n<img src=\"https://gitee.com/hecoter/blog/raw/master/imags/QQ%E6%88%AA%E5%9B%BE20221207202410.png\" style=\"zoom:50%;\" />\r\n\r\n<img src=\"https://gitee.com/hecoter/blog/raw/master/imags/0.png\" style=\"zoom:50%;\" />\r\n\r\n## 4 CLI\u7248 \u4f7f\u7528\r\n\r\n\u5b89\u88c5\uff1a\r\n\r\n```\r\npip install --upgrade hm3u8dl_cli\r\n```\r\n\r\n```\r\nm3u8download('https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8',title='132')\r\n```\r\n\r\n\u6216\u8005\u91c7\u7528\u5b9e\u4f8b\u5316\u5bf9\u8c61\u7684\u65b9\u6cd5\u8fdb\u884c\u4f7f\u7528\uff1a\r\n\r\n```\r\nfrom hm3u8dl_cli.util import M3U8InfoObj\r\nfrom hm3u8dl_cli import m3u8download\r\n\r\nm3u8InfoObj = M3U8InfoObj() # \u793a\u4f8b\u5316\u4e00\u4e2am3u8Info\u5bf9\u8c61\r\n\r\nm3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'\r\nm3u8InfoObj.title = '\u6807\u9898'\r\n\r\nm3u8download(m3u8InfoObj) # \u53ea\u9700\u586b\u4e00\u4e2a\u53c2\u6570\r\n```\r\n\r\n#### m3u8url \u793a\u4f8b\uff08\u5fc5\u586b\uff09\r\n\r\n```\r\nfrom hm3u8dl_cli import m3u8download\r\nm3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8' # \u7f51\u7edc\u94fe\u63a5\r\n# m3u8url = r\"C:\\Users\\hecot\\Desktop\\m3u8\u6587\u4ef6\u5939\" # \u6587\u4ef6\u5939\r\n# m3u8url = r\"C:\\Users\\hecot\\Downloads\\4adf37ccc0342e919fef2de4d02b473a_3 (3).m3u8\"  # \u672c\u5730\u6587\u4ef6\r\n# m3u8url = r\"C:\\Users\\hecot\\Desktop\\\u65b0\u5efa \u6587\u672c\u6587\u6863.txt\" # txt \u6587\u4ef6\r\n\"\"\" txt \u6587\u4ef6\u5185\u5bb9\u683c\u5f0f\uff1a title,m3u8url,key\r\n\u6587\u4ef6\u6807\u98981,C:\\Users\\hecot\\Desktop\\m3u8\u6587\u4ef6\u5939\\1.m3u8\r\n\u6587\u4ef6\u6807\u98982,C:\\Users\\hecot\\Desktop\\m3u8\u6587\u4ef6\u5939\\1.m3u8\r\n\"\"\"\r\nm3u8download(m3u8url,merge_mode=3)\r\n```\r\n\r\n#### title \u793a\u4f8b\uff08\u9009\u586b\uff09\r\n\r\n```\r\nfrom hm3u8dl_cli import m3u8download\r\nm3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'\r\ntitle = '\u6807\u9898'\r\nm3u8download(m3u8url)\r\n```\r\n\r\n#### method \u793a\u4f8b\uff08\u9009\u586b\uff09\r\n\r\n\u4e00\u822c\u53ef\u81ea\u52a8\u8bc6\u522b\r\n\r\n```\r\nNone\u3001AES-128\u3001AES-128-ECB\u3001CHACHA\u3001copyrightDRM\u3001FakeImage\u3001Widevine\r\n```\r\n\r\n#### key (\u9009\u586b)\r\n\r\n\u4e00\u822c\u53ef\u81ea\u52a8\u8bc6\u522b\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49key\r\n\r\n\u652f\u6301base64,hex,\u5b57\u8282\u5404\u7c7b\u683c\u5f0f\r\n\r\n```\r\nfrom hm3u8dl_cli import m3u8download\r\nm3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'\r\nkey = 'kQ2aSmyG1FDSmzpqTso/0w=='\r\n# key = b'\\x91\\r\\x9aJl\\x86\\xd4P\\xd2\\x9b:jN\\xca?\\xd3'\r\n# key = '910d9a4a6c86d450d29b3a6a4eca3fd3'\r\nm3u8download(m3u8url,key=key)\r\n```\r\n\r\n#### iv\uff08\u9009\u586b\uff09\r\n\r\n\u4e00\u822c\u53ef\u81ea\u52a8\u8bc6\u522b\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49iv\r\n\r\n\u540cKey\r\n\r\n#### nonce (\u9009\u586b)\r\n\r\nCHACHA \u89e3\u5bc6\u9700\u4f7f\u7528\u6b64\u53c2\u6570\uff0c\u7528\u6cd5\u540ckey\r\n\r\n#### enable_del\uff08\u9009\u586b\uff09\r\n\r\n\u4e0b\u8f7d\u5b8c\u6210\u540e\u5220\u9664\u591a\u4f59\u6587\u4ef6\uff0c`bool`\u578b\uff0c\u9ed8\u8ba4`True`\r\n\r\n```\r\nfrom hm3u8dl_cli import m3u8download\r\nfrom hm3u8dl_cli.util import M3U8InfoObj\r\n\r\nm3u8InfoObj = M3U8InfoObj()\r\n\r\nm3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'\r\nm3u8InfoObj.enable_del = False\r\n\r\nm3u8download(m3u8InfoObj)\r\n```\r\n\r\n#### merge_mode \uff08\u9009\u586b\uff09\r\n\r\n\u89c6\u9891\u5408\u5e76\u7c7b\u578b\uff0c`int `\u578b\r\n\r\n1:\u4e8c\u8fdb\u5236\u5408\u5e76\uff0c2\uff1a\u4e8c\u8fdb\u5236\u5408\u5e76\u5b8c\u6210\u540e\u7528ffmpeg\u8f6c\u7801\uff0c3\uff1a\u7528ffmpeg\u8f6c\u7801\r\n\r\n\u63a8\u8350\u4f7f\u75283\uff0c\u9274\u4e8e\u4f60\u7684\u7535\u8111\u53ef\u80fd\u6ca1\u6709\u914d\u7f6effmpeg \u73af\u5883\uff0c\u56e0\u6b64\u9ed8\u8ba4\u4e3a 1 \r\n\r\nFFmpeg \u73af\u5883\u914d\u7f6e : [FFmpeg \u73af\u5883\u914d\u7f6e \u00b7 Discussion #23 \u00b7 hecoter/hm3u8dl_cli (github.com)](https://github.com/hecoter/hm3u8dl_cli/discussions/23)\r\n\r\n```\r\nfrom hm3u8dl_cli import m3u8download\r\nfrom hm3u8dl_cli.util import M3U8InfoObj\r\n\r\nm3u8InfoObj = M3U8InfoObj()\r\n\r\nm3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'\r\nm3u8InfoObj.merge_mode = 3\r\n\r\nm3u8download(m3u8InfoObj)\r\n```\r\n\r\n#### threads (\u9009\u586b)\r\n\r\n\u4e0b\u8f7d\u7ebf\u7a0b\u6570\uff0c`int `\u578b,\u81ea\u52a8\u8bfb\u53d6\u7535\u8111\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a cpu\u6838\u6570\r\n\r\n#### headers \uff08\u9009\u586b\uff09\r\n\r\n\u8bf7\u6c42\u5934\uff0c`dict` \u578b\uff0c\u9ed8\u8ba4\u968f\u673a\u8bf7\u6c42\u5934\r\n\r\n```\r\nfrom hm3u8dl_cli import m3u8download\r\nfrom hm3u8dl_cli.util import M3U8InfoObj\r\n\r\nm3u8InfoObj = M3U8InfoObj()\r\n\r\nm3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'\r\nm3u8InfoObj.headers = {\r\n    'User-Agent':'iphone',\r\n    'Referer':'https://ntp.msn.cn/',\r\n    'Cookie':None\r\n}\r\nm3u8download(m3u8InfoObj)\r\n```\r\n\r\n#### work_dir \uff08\u9009\u586b\uff09\r\n\r\n\u5de5\u4f5c\u76ee\u5f55\uff0c\u9ed8\u8ba4  ./Downloads \r\n\r\n```\r\nfrom hm3u8dl_cli import m3u8download\r\nfrom hm3u8dl_cli.util import M3U8InfoObj\r\n\r\nm3u8InfoObj = M3U8InfoObj()\r\n\r\nm3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'\r\nm3u8InfoObj.work_dir = r'C:\\Users\\hecot\\Desktop'\r\n\r\nm3u8download(m3u8InfoObj)\r\n```\r\n\r\n#### proxy (\u9009\u586b)\r\n\r\n\u4ee3\u7406\uff0c`dict` \u578b\uff0c\u9ed8\u8ba4\u4f7f\u7528\u7cfb\u7edf\u4ee3\u7406\r\n\r\n```\r\nfrom hm3u8dl_cli import m3u8download\r\nfrom hm3u8dl_cli.util import M3U8InfoObj\r\n\r\nm3u8InfoObj = M3U8InfoObj()\r\n\r\nm3u8InfoObj.m3u8url = 'https://hls.videocc.net/4adf37ccc0/a/4adf37ccc0342e919fef2de4d02b473a_3.m3u8'\r\nm3u8InfoObj.proxy = {'http': 'http://127.0.0.1:8080', 'https': 'https://127.0.0.1:8080', 'ftp': 'ftp://127.0.0.1:8080'}\r\n# m3u8InfoObj.proxy = {'http': 'http://127.0.0.1:8080', 'https': 'https://127.0.0.1:8080', 'ftp': 'ftp://127.0.0.1:8080'}\r\n\r\nm3u8download(m3u8InfoObj)\r\n```\r\n",
    "bugtrack_url": null,
    "license": "MulanPSL2",
    "summary": "m3u8\u89c6\u9891\u89e3\u6790\uff0c\u4e0b\u8f7d\uff0c\u89e3\u5bc6\uff0c\u5408\u5e76\u7684python\u7a0b\u5e8f\uff0c\u652f\u6301\u5168\u5e73\u53f0",
    "version": "0.4.9",
    "split_keywords": [
        "m3u8",
        "aes",
        "decrypt",
        "download",
        "parse"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "56a88525d86ddf14b4a36827dbc854b0",
                "sha256": "f32d44b7ec2afc64789c35897f6a40ec963d41fbb6b2fbe696b085f60aad0c01"
            },
            "downloads": -1,
            "filename": "hm3u8dl_cli-0.4.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "56a88525d86ddf14b4a36827dbc854b0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 6671189,
            "upload_time": "2022-12-14T13:04:17",
            "upload_time_iso_8601": "2022-12-14T13:04:17.804257Z",
            "url": "https://files.pythonhosted.org/packages/91/6c/92533a7089f1ab1161b1930ca59980bc2fbcf804d981740c42788b9fc71f/hm3u8dl_cli-0.4.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "2de75472d158e8f7923d18e9531a8363",
                "sha256": "90631481ef61ec352e2114308936fac60676f58249014c5e76aa8f96aab967a4"
            },
            "downloads": -1,
            "filename": "hm3u8dl_cli-0.4.9.tar.gz",
            "has_sig": false,
            "md5_digest": "2de75472d158e8f7923d18e9531a8363",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 6637215,
            "upload_time": "2022-12-14T13:04:20",
            "upload_time_iso_8601": "2022-12-14T13:04:20.964872Z",
            "url": "https://files.pythonhosted.org/packages/af/0b/2bce908db01d357349c2f0b095173acdd4ae1f40457f88465f1d1e6f5771/hm3u8dl_cli-0.4.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-12-14 13:04:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "hecoter",
    "github_project": "hm3u8dl_cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "hm3u8dl-cli"
}
        
Elapsed time: 0.01961s