vods

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2022 License: MIT Imports: 15 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DOMAINS = []string{
	"https://vod-secure.twitch.tv/",
	"https://vod-metro.twitch.tv/",
	"https://vod-pop-secure.twitch.tv/",
	"https://d1m7jfoe9zdc1j.cloudfront.net/",
	"https://d1mhjrowxxagfy.cloudfront.net/",
	"https://d1ymi26ma8va5x.cloudfront.net/",
	"https://d2nvs31859zcd8.cloudfront.net/",
	"https://d2vjef5jvl6bfs.cloudfront.net/",
	"https://d3vd9lfkzbru3h.cloudfront.net/",
	"https://dgeft87wbj63p.cloudfront.net/",
	"https://dqrpb9wgowsf5.cloudfront.net/",
	"https://ds0h3roq6wcgc.cloudfront.net/",
}

Functions

func DecodeMediaPlaylistFilterNilSegments

func DecodeMediaPlaylistFilterNilSegments(data []byte, strict bool) (*m3u8.MediaPlaylist, error)

func GetMediaPlaylistDuration

func GetMediaPlaylistDuration(mediapl *m3u8.MediaPlaylist) time.Duration

func GetMediaPlaylistWithValidSegments

func GetMediaPlaylistWithValidSegments(rawPlaylist *m3u8.MediaPlaylist, concurrent int, client *http.Client) (*m3u8.MediaPlaylist, error)

func GetValidSegments

func GetValidSegments(mediapl *m3u8.MediaPlaylist, concurrent int, client *http.Client) []*m3u8.MediaSegment

func MuteMediaSegments

func MuteMediaSegments(playlist *m3u8.MediaPlaylist) []*m3u8.MediaSegment

Types

type DomainWithPath

type DomainWithPath struct {
	Domain string // e.g. https://d1m7jfoe9zdc1j.cloudfront.net/
	Path   *VideoPath
}

func (*DomainWithPath) GetDomain

func (d *DomainWithPath) GetDomain() string

func (*DomainWithPath) GetIndexDvrUrl

func (d *DomainWithPath) GetIndexDvrUrl() string

func (*DomainWithPath) GetM3U8Body

func (d *DomainWithPath) GetM3U8Body(ctx context.Context, client *http.Client) ([]byte, error)

func (*DomainWithPath) GetSegmentChunkedUrl

func (d *DomainWithPath) GetSegmentChunkedUrl(segment *m3u8.MediaSegment) string

func (*DomainWithPath) GetVideoData

func (d *DomainWithPath) GetVideoData() *VideoData

func (*DomainWithPath) MakePathsExplicit

func (d *DomainWithPath) MakePathsExplicit(playlist *m3u8.MediaPlaylist) *m3u8.MediaPlaylist

type DomainWithPaths

type DomainWithPaths struct {
	// contains filtered or unexported fields
}

func (*DomainWithPaths) GetFirstValidDWP

func (domainWithPaths *DomainWithPaths) GetFirstValidDWP(ctx context.Context, client *http.Client) (*ValidDwpResponse, error)

func (*DomainWithPaths) ToListOfDomainWithPath

func (domainWithPaths *DomainWithPaths) ToListOfDomainWithPath() []*DomainWithPath

type StreamsChartsData

type StreamsChartsData struct {
	StreamerName string
	VideoId      string
	UtcTime      string
}

func (*StreamsChartsData) GetVideoData

func (data *StreamsChartsData) GetVideoData() (VideoData, error)

type SullyGnomeData

type SullyGnomeData struct {
	StreamerName string
	VideoId      string
	UtcTime      string
}

func (*SullyGnomeData) GetVideoData

func (data *SullyGnomeData) GetVideoData() (VideoData, error)

type TwitchTrackerData

type TwitchTrackerData struct {
	StreamerName string
	VideoId      string
	UtcTime      string
}

func (*TwitchTrackerData) GetVideoData

func (data *TwitchTrackerData) GetVideoData() (VideoData, error)

type ValidDwpResponse

type ValidDwpResponse struct {
	Dwp  *DomainWithPath
	Body []byte
}

func GetFirstValidDwp

func GetFirstValidDwp(ctx context.Context, domainWithPathsList []*DomainWithPaths, client *http.Client) (*ValidDwpResponse, error)

type VideoData

type VideoData struct {
	StreamerName string
	VideoId      string
	Time         time.Time
}

func UrlPathToVideoData

func UrlPathToVideoData(urlPath string) (*VideoData, error)

e.g. c5992ececce7bd7d350d_gmhikaru_47198535725_1664038929

func (*VideoData) GetDomainWithPathsList

func (videoData *VideoData) GetDomainWithPathsList(domains []string, seconds int, toUnix bool) []*DomainWithPaths

func (*VideoData) GetUrlPath

func (videoData *VideoData) GetUrlPath(toUnix bool) string

func (*VideoData) GetVideoPath

func (videoData *VideoData) GetVideoPath(toUnix bool) *VideoPath

func (*VideoData) String

func (videoData *VideoData) String() string

func (*VideoData) WithOffset

func (videoData *VideoData) WithOffset(seconds int) *VideoData

type VideoPath

type VideoPath struct {
	UrlPath   string // e.g. {hash}_{streamername}_{videoid}_{unixtime}
	VideoData *VideoData
}

Jump to

Keyboard shortcuts

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