README ¶ M3U https://github.com/oopsguy/m3u8 https://github.com/ytdl-org/youtube-dl/issues/30491 https://play.google.com/store/apps/details?id=com.cbs.app https://wikipedia.org/wiki/M3U #EXT-X-KEY If IV is missing, then use KEY for both. https://github.com/oopsguy/m3u8/blob/master/tool/crypt.go#L25-L39 CBC Why does this: #EXT-X-KEY:METHOD=AES-128,URI="https://cbsios-vh.akamaihd.net/i/temp_hd_galle... mean CBC? An encryption method of AES-128 signals that Media Segments are completely encrypted using the Advanced Encryption Standard (AES) [AES_128] with a 128-bit key, Cipher Block Chaining (CBC) https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.2.4 Expand ▾ Collapse ▴ Documentation ¶ Overview ¶ M3U parser Index ¶ type Block func NewCipher(key []byte) (*Block, error) func (b Block) Decrypt(src []byte) []byte type Decoder func (d Decoder) Masters(src io.Reader) ([]Master, error) func (d Decoder) Segment(src io.Reader) (*Segment, error) type Master func (m Master) String() string type Segment Constants ¶ This section is empty. Variables ¶ This section is empty. Functions ¶ This section is empty. Types ¶ type Block ¶ added in v1.20.8 type Block struct { IV []byte cipher.Block } func NewCipher ¶ added in v1.20.8 func NewCipher(key []byte) (*Block, error) func (Block) Decrypt ¶ added in v1.20.8 func (b Block) Decrypt(src []byte) []byte We do not care about the ciphertext, so this works in place. type Decoder ¶ added in v1.21.6 type Decoder struct { Dir string } func (Decoder) Masters ¶ added in v1.21.6 func (d Decoder) Masters(src io.Reader) ([]Master, error) func (Decoder) Segment ¶ added in v1.21.6 func (d Decoder) Segment(src io.Reader) (*Segment, error) type Master ¶ added in v1.21.2 type Master struct { Resolution string Bandwidth int64 Codecs string URI string } func (Master) String ¶ added in v1.21.3 func (m Master) String() string type Segment ¶ added in v1.21.2 type Segment struct { Key string URI []string } Source Files ¶ View all Source files crypto.gom3u.go Click to show internal directories. Click to hide internal directories.