func ParseId(urlData string) string
https://hulu.com/movie/05e76ad8-c3dd-4c3e-bab9-df3cf71c6871 https://hulu.com/movie/alien-romulus-05e76ad8-c3dd-4c3e-bab9-df3cf71c6871
type DeepLink struct { EabId string `json:"eab_id"` Message string }
type Details struct { VodItems struct { Focus struct { Entity struct { Bundle struct { EabId string `json:"eab_id"` } } } } `json:"vod_items"` }
type Device struct { DeviceToken string `json:"device_token"` Message string // 2026-05-02 UserToken string `json:"user_token"` }
func FetchDevice(email, password string) (*Device, error)
func (*Device) CachePath() string
func (d *Device) DeepLink(id string) (*DeepLink, error)
func (d *Device) GetDetails(movie string) (*Details, error)
func (d *Device) Playlist(eabId string) (*Playlist, error)
L3 max 1080p SL2000 max 1080p SL3000 max 2160p
func (d *Device) TokenRefresh() error
returns user_token only
type Playlist struct { DashPrServer *Url `json:"dash_pr_server"` StreamUrl *Url `json:"stream_url"` // MPD WvServer *Url `json:"wv_server"` }
func (*Playlist) CachePath() string
func (p *Playlist) FetchPlayReady(body []byte) ([]byte, error)
func (p *Playlist) FetchWidevine(body []byte) ([]byte, error)
type Url struct { Url url.URL }
func (u *Url) MarshalText() ([]byte, error)
func (u *Url) UnmarshalText(text []byte) error