m3uparser

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// M3U8Version3 represents version 3 of the M3U8 format.
	M3U8Version3 = 3
)

Variables

View Source
var (
	M3U8Directives = []string{

		"EXTM3U",
		"EXTINF",
		"PLAYLIST",
		"EXTGRP",
		"EXTALB",
		"EXTART",
		"EXTGENRE",
		"EXTM3A",
		"EXTBYT",
		"EXTBIN",
		"EXTENC",
		"EXTIMG",

		"EXT-X-START",
		"EXT-X-INDEPENDENT-SEGMENTS",
		"EXT-X-PLAYLIST-TYPE",
		"EXT-X-TARGETDURATION",
		"EXT-X-VERSION",
		"EXT-X-MEDIA-SEQUENCE",
		"EXT-X-MEDIA",
		"EXT-X-STREAM-INF",
		"EXT-X-BYTERANGE",
		"EXT-X-DISCONTINUITY",
		"EXT-X-DISCONTINUITY-SEQUENCE",
		"EXT-X-GAP",
		"EXT-X-KEY",
		"EXT-X-MAP",
		"EXT-X-PROGRAM-DATE-TIME",
		"EXT-X-DATERANGE",
		"EXT-X-I-FRAMES-ONLY",
		"EXT-X-SESSION-DATA",
		"EXT-X-SESSION-KEY",
		"EXT-X-ENDLIST",

		"EXTVLCOPT",

		"KODIPROP",

		"M3UPROXYHEADER",
	}
)
View Source
var M3U8DirectivesMap = func() map[string]struct{} {
	m := make(map[string]struct{}, len(M3U8Directives))
	for _, directive := range M3U8Directives {
		m[directive] = struct{}{}
	}
	return m
}()

Functions

This section is empty.

Types

type M3UEntries added in v0.0.3

type M3UEntries []M3UEntry

func (M3UEntries) RemoveByExtinfTag added in v0.0.25

func (entries M3UEntries) RemoveByExtinfTag(tag string, value string)

func (M3UEntries) SearchByExtinfTag added in v0.0.25

func (entries M3UEntries) SearchByExtinfTag(tag string, value string) *M3UEntry

func (M3UEntries) SearchIndexByExtinfTag added in v0.0.25

func (entries M3UEntries) SearchIndexByExtinfTag(tag string, value string) int

type M3UEntry

type M3UEntry struct {
	URI        string        `json:"uri"`         // The URI of the media.
	Duration   int           `json:"duration"`    // The duration of the media in seconds (if available).
	Title      string        `json:"title"`       // The title of the media (if available).
	Tags       M3UTags       `json:"tags"`        // Additional tags associated with the entry.
	ExtInfTags M3UExtinfTags `json:"extinf_tags"` // Additional tags associated with the entry.
}

M3UEntry represents a single entry in the M3U file.

func (*M3UEntry) AddTag added in v0.0.12

func (entry *M3UEntry) AddTag(tag string, value string)

func (*M3UEntry) ClearTags added in v0.0.12

func (entry *M3UEntry) ClearTags()

func (*M3UEntry) RemoveTags added in v0.0.12

func (entry *M3UEntry) RemoveTags(tag string)

func (*M3UEntry) SearchTags added in v0.0.7

func (entry *M3UEntry) SearchTags(tag string) []M3UTag

func (*M3UEntry) String

func (entry *M3UEntry) String() string

func (*M3UEntry) WriteTo added in v0.0.23

func (entry *M3UEntry) WriteTo(w io.Writer) (int64, error)

type M3UExtinfTags added in v0.0.25

type M3UExtinfTags []M3UTvgTag

func ExtractExtinfTags added in v0.0.25

func ExtractExtinfTags(data string) M3UExtinfTags

func (M3UExtinfTags) GetValue added in v0.0.25

func (tags M3UExtinfTags) GetValue(tag string) string

func (M3UExtinfTags) String added in v0.0.25

func (tags M3UExtinfTags) String() string

type M3UPlaylist

type M3UPlaylist struct {
	Version int        // The version of the M3U (EXTM3U).
	Entries M3UEntries // The list of media entries in the playlist.
	Tags    M3UTags    // Additional tags associated with the entry.
	Type    string     // The type of the media (if available).
}

M3UPlaylist represents the parsed M3U playlist.

func DecodeFromReader added in v0.0.23

func DecodeFromReader(r io.Reader) (*M3UPlaylist, error)

func ParseM3UFile

func ParseM3UFile(filePath string) (*M3UPlaylist, error)

func (*M3UPlaylist) EntriesString added in v0.0.3

func (playlist *M3UPlaylist) EntriesString() string

func (*M3UPlaylist) GetEntries

func (playlist *M3UPlaylist) GetEntries() M3UEntries

func (*M3UPlaylist) GetVersion

func (playlist *M3UPlaylist) GetVersion() int

func (*M3UPlaylist) RemoveEntryByExtinfTag added in v0.0.25

func (playlist *M3UPlaylist) RemoveEntryByExtinfTag(tag, value string)

func (*M3UPlaylist) SearchEntryByExtinfTag added in v0.0.25

func (playlist *M3UPlaylist) SearchEntryByExtinfTag(tag, value string) *M3UEntry

func (*M3UPlaylist) SearchEntryByTitle added in v0.0.7

func (playlist *M3UPlaylist) SearchEntryByTitle(title string) *M3UEntry

func (*M3UPlaylist) SearchEntryByURI added in v0.0.7

func (playlist *M3UPlaylist) SearchEntryByURI(uri string) *M3UEntry

func (*M3UPlaylist) SearchEntryIndexByExtinfTag added in v0.0.25

func (playlist *M3UPlaylist) SearchEntryIndexByExtinfTag(tag, value string) int

func (*M3UPlaylist) StreamCount added in v0.0.7

func (playlist *M3UPlaylist) StreamCount() int

func (*M3UPlaylist) String

func (playlist *M3UPlaylist) String() string

func (*M3UPlaylist) WriteTo added in v0.0.23

func (playlist *M3UPlaylist) WriteTo(writer io.Writer) (int64, error)

type M3UTag

type M3UTag struct {
	Tag   string
	Value string
}

type M3UTags added in v0.0.3

type M3UTags []M3UTag

func (M3UTags) Exist added in v0.0.23

func (tags M3UTags) Exist(tag string) bool

func (M3UTags) GetValue added in v0.0.3

func (tags M3UTags) GetValue(tag string) string

type M3UTvgTag added in v0.0.3

type M3UTvgTag struct {
	Tag   string
	Value string
}

func (*M3UTvgTag) String added in v0.0.3

func (tag *M3UTvgTag) String() string

Jump to

Keyboard shortcuts

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