MCPcopy Index your code
hub / github.com/Jay-Goo/M3U8Downloader

github.com/Jay-Goo/M3U8Downloader @V1.0.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release V1.0.8 ↗ · + Follow
271 symbols 617 edges 28 files 98 documented · 36% updated 7y agoV1.0.8 · 2018-05-02★ 43814 open issues

Browse by type

Functions 239 Types & classes 32
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

M3U8Downloader

M3U8下载器,支持多线程下载、断点续传、后台下载、本地播放解决方案、m3u8加密解决方案

依赖

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

dependencies {
            compile 'com.github.Jay-Goo:M3U8Downloader:V1.0.8'
    }

用法

配置

  • default Config:
M3U8DownloaderConfig
                .build(getApplicationContext())
                .setSaveDir(dirPath)
                ;
  • Custom Config:
M3U8DownloaderConfig
                .build(getApplicationContext())
                .setSaveDir(dirPath)
                .setConnTimeout(10000)
                .setReadTimeout(10000)
                .setThreadCount(3)
                .setDebugMode(true)
                ;

单例

M3U8Downloader.getInstance()

下载

download(String url)

暂停

pause(String url)

取消任务、取消任务并删除文件缓存

cancel(String url)

cancelAndDelete(final String url, final OnDeleteTaskListener listener)

下载监听

        M3U8Downloader.getInstance().setOnM3U8DownloadListener(onM3U8DownloadListener);

private OnM3U8DownloadListener onM3U8DownloadListener = new OnM3U8DownloadListener() {

        @Override
        public void onDownloadItem(M3U8Task task, long itemFileSize, int totalTs, int curTs) {
            super.onDownloadItem(task, itemFileSize, totalTs, curTs);
            //下载切片监听,非UI线程
        }

        @Override
        public void onDownloadSuccess(M3U8Task task) {
            super.onDownloadSuccess(task);
            //下载成功
        }

        @Override
        public void onDownloadPending(M3U8Task task) {
            super.onDownloadPending(task);
            //加入队列,任务挂起
        }

        @Override
        public void onDownloadPause(M3U8Task task) {
            super.onDownloadPause(task);
            //任务暂停
        }

        @Override
        public void onDownloadProgress(final M3U8Task task) {
            super.onDownloadProgress(task);
            //下载进度,非UI线程
        }

        @Override
        public void onDownloadPrepare(final M3U8Task task) {
            super.onDownloadPrepare(task);
            //准备下载
        }

        @Override
        public void onDownloadError(final M3U8Task task, Throwable errorMsg) {
            super.onDownloadError(task, errorMsg);
            //下载错误,非UI线程
        }

    };

M3U8Task

    private String url; //下载链接
    private int state = M3U8TaskState.DEFAULT; //下载状态
    private long speed; //下载速度
    private float progress; //下载进度
    private M3U8 m3U8; //下载成功后得到

加密

加密后视频切片文件名乱序,并移除后缀。

//设置密匙
M3U8Downloader.getInstance().setEncryptKey(encryptKey);
//获取随机密匙
AES128Utils.getAESKey()

更多加密解密 M3U8EncryptHelper

本地播放

普通未加密请使用 M3U8HttpServer

加密请参考 EncryptM3U8Server

具体使用样例参考 FullScreenActivity

致谢

huangdali - M3U8Manger

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 239
Class 28
Interface 4

Languages

Java100%

Modules by API surface

library/src/main/java/jaygoo/library/m3u8downloader/WeakHandler.java29 symbols
library/src/main/java/jaygoo/library/m3u8downloader/M3U8Downloader.java26 symbols
library/src/main/java/jaygoo/library/m3u8downloader/utils/SPHelper.java20 symbols
app/src/main/java/jaygoo/m3u8downloader/MainActivity.java18 symbols
library/src/main/java/jaygoo/library/m3u8downloader/bean/M3U8.java16 symbols
library/src/main/java/jaygoo/library/m3u8downloader/M3U8DownloadTask.java16 symbols
library/src/main/java/jaygoo/library/m3u8downloader/bean/M3U8Task.java15 symbols
library/src/main/java/jaygoo/library/m3u8downloader/bean/M3U8Ts.java13 symbols
library/src/main/java/jaygoo/library/m3u8downloader/M3U8DownloaderConfig.java12 symbols
library/src/main/java/jaygoo/library/m3u8downloader/DownloadQueue.java11 symbols
app/src/main/java/jaygoo/m3u8downloader/StorageUtils.java10 symbols
library/src/main/java/jaygoo/library/m3u8downloader/utils/MUtils.java8 symbols

For agents

$ claude mcp add M3U8Downloader \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page