m3u8

package module
v1.2.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

README

M3u8文件下载视频

通过m3u8网络文件或者本地文件下载合成视频

  • 支持自动Aes-128解密
  • 支持网络m3u8文件
  • 支持本地m3u8文件
  • 自动添加前缀host
  • 支持多文件下载
  • 支持多线程下载

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Aes128 = new(aes128)

Functions

func SetCfg

func SetCfg(cfg Config)

func SetLog

func SetLog(w ...io.Writer)

Types

type Config

type Config struct {
	Dir            string        `json:"dir,omitempty" yaml:"dir"`
	UserAgent      string        `json:"user_agent,omitempty" yaml:"userAgent"`
	RequestTimeout time.Duration `json:"request_timeout,omitempty" yaml:"requestTimeout"`
	Ext            string        `json:"ext,omitempty" yaml:"ext"`
	TsGoNum        int           `json:"ts_go_num,omitempty" yaml:"tsGoNum"`
}
var (
	Cfg Config
)

type Decryption

type Decryption interface {
	// IsNeed 判断是否需要该解密算法
	// 获取解密需要使用的密钥等
	// head 为m3u8文件中的 #EXT-X-KEY:METHOD=....
	// 如果返回 true 会使用 Decrypt 进行解密
	IsNeed(head []byte) bool
	// Decrypt 进行解密, 返回解密后的数据
	Decrypt(dst []byte) ([]byte, error)
}

Decryption handler

type Info

type Info struct {
	// 已下载大小
	Size int64
	// 已下载数量
	Downloaded uint64
	// 总数量
	Count int

	Name string
}

type LocalFile

type LocalFile struct {
	FilePath string
	Prefix   string
	FileName string
}

LocalFile 本地文件

func (LocalFile) GetBody

func (l LocalFile) GetBody() []byte

func (LocalFile) GetDownloadPath

func (l LocalFile) GetDownloadPath() string

func (LocalFile) GetName

func (l LocalFile) GetName() string

func (LocalFile) GetPrefix

func (l LocalFile) GetPrefix() string

type M

type M struct {
	M3U8
	// contains filtered or unexported fields
}

M 通用处理程序

func New

func New(handler M3U8) *M

func (*M) Info

func (m *M) Info() Info

func (*M) Start

func (m *M) Start() error

type M3U8

type M3U8 interface {
	GetPrefix() string
	GetDownloadPath() string
	GetName() string
	GetBody() []byte
}

type Net

type Net struct {
	Url      string
	Prefix   string
	FileName string
}

Net 网络地址

func (Net) GetBody

func (n Net) GetBody() []byte

func (Net) GetDownloadPath

func (n Net) GetDownloadPath() string

func (Net) GetName

func (n Net) GetName() string

func (Net) GetPrefix

func (n Net) GetPrefix() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL