Package canal (v1.10.6) [repository]

Index

Variables

var Transport = http.Transport{
	Protocols: &http.Protocols{},
	Proxy: func(req *http.Request) (*url.URL, error) {
		if path.Ext(req.URL.Path) != ".dash" {
			log.Println(req.Method, req.URL)
		}
		proxy, err := http.ProxyFromEnvironment(req)
		if err != nil {
			return nil, err
		}
		if proxy != nil {
			if proxy.Hostname() == "localhost" {
				return proxy, nil
			}
			if strings.HasSuffix(req.URL.Path, "/play") {
				return proxy, nil
			}
		}
		return nil, nil
	},
}

Functions

func TrackingId(address string) (string, error)

Types

type Episode

type Episode struct {
	Params struct {
		SeriesEpisode int64
	}
	Id string
}

Methods

func (e *Episode) String() string

type Player

type Player struct {
	Drm struct {
		LicenseUrl string
	}
	Message string
	Url     string // MPD
}

Methods

func (p *Player) Widevine(data []byte) ([]byte, error)

type Session

type Session struct {
	Message  string
	SsoToken string
	Token    string // this last one hour
}

Methods

func (s *Session) Episodes(tracking_id string, season int64) ([]Episode, error)
func (s *Session) Player(tracking_id string) (*Player, error)
func (s *Session) Unmarshal(data SessionData) error

type SessionData

type SessionData []byte

type Ticket

type Ticket struct {
	Message string
	Ticket  string
}

Methods

func (t *Ticket) Fetch() error
func (t *Ticket) Token(username, password string) (*Token, error)

type Token

type Token struct {
	Label    string
	Message  string
	SsoToken string // this last one day
}

Methods

func (t *Token) Error() string