bilidown

package module
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2024 License: MIT Imports: 16 Imported by: 0

README

bilidown

Bilibili 视频解析工具模块。

获取模块

go get -u github.com/iuroc/bilidown

CLI 工具

image

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckVideoURLOrID

func CheckVideoURLOrID(urlOrId string) (videoId string, err error)

CheckVideoURLOrID 校验视频链接或视频 ID 格式

func ClearDir

func ClearDir(path string)

ClearDir 清空文件夹

func Download

func Download(parseResult *ParseResult, index int, downDirPath string, tempDirPath string) (outputPath string, err error)

Download 下载并合并指定的视频和音频,保存到输出目录

func DownloadFile

func DownloadFile(url string, path string) error

func ExpiresToTime

func ExpiresToTime(expires float64) time.Time

ExpiresToTime 将 network.Cookie.Expires 转换为 Time

func FileExists

func FileExists(path string) bool

FileExists 判断文件是否存在

func GetCookieValue

func GetCookieValue(filePath string) (string, error)

GetCookieValue 获取文件中保存的可用 Cookie

func InitDir

func InitDir(path string)

InitDir 初始化文件夹,如果不存在则自动创建

func Login

func Login() (*network.Cookie, error)

Login 调用浏览器登录并返回 SESSDATA

func MakeVideoURL

func MakeVideoURL(videoId string) string

MakeVideoURL 根据视频 ID 构建视频链接

func SaveCookie

func SaveCookie(cookie *network.Cookie, cookieSavePath string)

SaveCookie 将 Cookie 以 JSON 格式保存到 cookie 文件中

Types

type AudioItem

type AudioItem struct {
	// 下载地址
	BaseUrl string `json:"baseUrl"`
	// 备用下载地址
	BackupUrl []string `json:"backupUrl"`
	// 编解码器
	Codecs string `json:"codecs"`
	// 比特率
	Bandwidth int `json:"bandwidth"`
}

type FormatItem

type FormatItem struct {
	// 视频分辨率 ID
	Quality int `json:"quality"`
	// 分辨率描述
	Description string `json:"new_description"`
	// 编解码器
	Codecs []string `json:"codecs"`
}

type InitialState

type InitialState struct {
	Data VideoData `json:"videoData"`
}

type ParseResult

type ParseResult struct {
	PlayInfoData
	VideoData
}

func ParseVideo

func ParseVideo(videoURL string, cookieValue string) (*ParseResult, error)

ParseVideo 解析视频下载地址

type PlayInfo

type PlayInfo struct {
	Data PlayInfoData `json:"data"`
}

type PlayInfoData

type PlayInfoData struct {
	SupportFormats []FormatItem `json:"support_formats"`
	Dash           struct {
		Audio []AudioItem `json:"audio"`
		Video []VideoItem `json:"video"`
	} `json:"dash"`
}

type StaffItem

type StaffItem struct {
	Name  string `json:"name"`
	Title string `json:"title"`
}

type Stat

type Stat struct {
	// 投币数量
	Coin int `json:"coin"`
	// 弹幕条数
	Danmaku int `json:"danmaku"`
	// 收藏数量
	Favorite int `json:"favorite"`
	// 点赞数量
	Like int `json:"like"`
	// 分享数量
	Share int `json:"share"`
	// 播放量
	View int `json:"view"`
	// 评论数量
	Reply int `json:"reply"`
}

type VideoData

type VideoData struct {
	// 视频标题
	Title string `json:"title"`
	// 创作团队
	Staff []StaffItem `json:"staff"`
	// 视频统计信息
	Stat Stat `json:"stat"`
	// 视频描述
	Desc string `json:"desc"`
	// 发布时间
	Pubdate int `json:"pubdate"`
	Owner   struct {
		Name string `json:"name"`
	} `json:"owner"`
}

func (VideoData) PubdateString

func (video VideoData) PubdateString() string

type VideoItem

type VideoItem struct {
	// 视频分辨率 ID
	Id int `json:"id"`
	// 下载地址
	BaseUrl string `json:"baseUrl"`
	// 备用下载地址
	BackupUrl []string `json:"backupUrl"`
	// 编解码器
	Codecs string `json:"codecs"`
	// 比特率
	Bandwidth int `json:"bandwidth"`
}

func (VideoItem) Description

func (video VideoItem) Description(formats []FormatItem) string

Description 视频分辨率描述

Directories

Path Synopsis
server module

Jump to

Keyboard shortcuts

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