bilibili

package
v0.0.0-...-799cb51 Latest Latest
Warning

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

Go to latest
Published: Dec 24, 2020 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New() types.Extractor

New 返回extractor对象,有一个抽象的extract方法可以使用,

Types

type BugumiInfo

type BugumiInfo struct {
	Loaded bool `json:"loaded"`
	Ver    struct {
	} `json:"ver"`
	Ssr struct {
	} `json:"ssr"`
	LoginInfo struct {
	} `json:"loginInfo"`
	H1Title   string `json:"h1Title"`
	MediaInfo struct {
		Stat struct {
			Coins     int `json:"coins"`
			Danmakus  int `json:"danmakus"`
			Favorites int `json:"favorites"`
			Likes     int `json:"likes"`
			Reply     int `json:"reply"`
			Share     int `json:"share"`
			Views     int `json:"views"`
		} `json:"stat"`
		ID           int    `json:"id"`
		SsID         int    `json:"ssId"`
		Title        string `json:"title"`
		JpTitle      string `json:"jpTitle"`
		Series       string `json:"series"`
		Alias        string `json:"alias"`
		Evaluate     string `json:"evaluate"`
		SsType       int    `json:"ssType"`
		SsTypeFormat struct {
			Name     string `json:"name"`
			HomeLink string `json:"homeLink"`
		} `json:"ssTypeFormat"`
		Status       int    `json:"status"`
		MultiMode    bool   `json:"multiMode"`
		ForceWide    bool   `json:"forceWide"`
		SpecialCover string `json:"specialCover"`
		SquareCover  string `json:"squareCover"`
		Cover        string `json:"cover"`
		PlayerRecord string `json:"playerRecord"`
		Rights       struct {
			AllowBp       bool `json:"allowBp"`
			AllowBpRank   bool `json:"allowBpRank"`
			AllowReview   bool `json:"allowReview"`
			IsPreview     bool `json:"isPreview"`
			AppOnly       bool `json:"appOnly"`
			LimitNotFound bool `json:"limitNotFound"`
			IsCoverShow   bool `json:"isCoverShow"`
			CanWatch      bool `json:"canWatch"`
		} `json:"rights"`
		Pub struct {
			Time     string `json:"time"`
			TimeShow string `json:"timeShow"`
			IsStart  bool   `json:"isStart"`
			IsFinish bool   `json:"isFinish"`
			Unknow   bool   `json:"unknow"`
		} `json:"pub"`
		UpInfo struct {
			Mid          int    `json:"mid"`
			Avatar       string `json:"avatar"`
			Name         string `json:"name"`
			IsAnnualVip  bool   `json:"isAnnualVip"`
			PendantID    int    `json:"pendantId"`
			PendantName  string `json:"pendantName"`
			PendantImage string `json:"pendantImage"`
		} `json:"upInfo"`
		Rating struct {
			Score float64 `json:"score"`
			Count int     `json:"count"`
		} `json:"rating"`
		NewestEp struct {
			ID    int    `json:"id"`
			Desc  string `json:"desc"`
			IsNew bool   `json:"isNew"`
		} `json:"newestEp"`
		PayMent struct {
			Price        string `json:"price"`
			Tip          string `json:"tip"`
			Promotion    string `json:"promotion"`
			VipProm      string `json:"vipProm"`
			VipFirstProm string `json:"vipFirstProm"`
			Discount     int    `json:"discount"`
			VipDiscount  int    `json:"vipDiscount"`
			SixType      struct {
				AllowTicket      bool `json:"allowTicket"`
				AllowTimeLimit   bool `json:"allowTimeLimit"`
				AllowDiscount    bool `json:"allowDiscount"`
				AllowVipDiscount bool `json:"allowVipDiscount"`
			} `json:"sixType"`
		} `json:"payMent"`
		PayPack struct {
			Title        string `json:"title"`
			AppNoPayText string `json:"appNoPayText"`
			AppPayText   string `json:"appPayText"`
			URL          string `json:"url"`
		} `json:"payPack"`
		Activity struct {
			ID             int    `json:"id"`
			Title          string `json:"title"`
			PendantOpsImg  string `json:"pendantOpsImg"`
			PendantOpsLink string `json:"pendantOpsLink"`
		} `json:"activity"`
		Count struct {
			Coins   int `json:"coins"`
			Danmus  int `json:"danmus"`
			Follows int `json:"follows"`
			Views   int `json:"views"`
			Likes   int `json:"likes"`
		} `json:"count"`
		PgcType      string `json:"pgcType"`
		EpSpMode     bool   `json:"epSpMode"`
		NewEpSpMode  bool   `json:"newEpSpMode"`
		MainSecTitle string `json:"mainSecTitle"`
		PremiereInfo struct {
		} `json:"premiereInfo"`
	} `json:"mediaInfo"`
	EpList []struct {
		Loaded      bool   `json:"loaded"`
		ID          int    `json:"id"`
		Badge       string `json:"badge"`
		BadgeType   int    `json:"badgeType"`
		BadgeColor  string `json:"badgeColor"`
		EpStatus    int    `json:"epStatus"`
		Aid         int    `json:"aid"`
		Bvid        string `json:"bvid"`
		Cid         int    `json:"cid"`
		From        string `json:"from"`
		Cover       string `json:"cover"`
		Title       string `json:"title"`
		TitleFormat string `json:"titleFormat"`
		Vid         string `json:"vid"`
		LongTitle   string `json:"longTitle"`
		HasNext     bool   `json:"hasNext"`
		I           int    `json:"i"`
		SectionType int    `json:"sectionType"`
		ReleaseDate string `json:"releaseDate"`
		Skip        struct {
		} `json:"skip"`
		HasSkip bool `json:"hasSkip"`
		Rights  struct {
			AllowDemand   int `json:"allow_demand"`
			AllowDm       int `json:"allow_dm"`
			AllowDownload int `json:"allow_download"`
		} `json:"rights"`
		Stat struct {
		} `json:"stat"`
	} `json:"epList"`
	EpInfo struct {
		Loaded      bool   `json:"loaded"`
		ID          int    `json:"id"`
		Aid         int    `json:"aid"`
		Cid         int    `json:"cid"`
		Badge       string `json:"badge"`
		BadgeType   int    `json:"badgeType"`
		EpStatus    int    `json:"epStatus"`
		Page        int    `json:"page"`
		From        string `json:"from"`
		Cover       string `json:"cover"`
		Title       string `json:"title"`
		TitleFormat string `json:"titleFormat"`
		Vid         string `json:"vid"`
		LongTitle   string `json:"longTitle"`
		HasNext     bool   `json:"hasNext"`
		I           int    `json:"i"`
		DialogType  string `json:"dialogType"`
		Rights      struct {
		} `json:"rights"`
	} `json:"epInfo"`
	Sections []struct {
		ID     int    `json:"id"`
		Title  string `json:"title"`
		Type   int    `json:"type"`
		EpList []struct {
			Loaded      bool   `json:"loaded"`
			ID          int    `json:"id"`
			Badge       string `json:"badge"`
			BadgeType   int    `json:"badgeType"`
			BadgeColor  string `json:"badgeColor"`
			EpStatus    int    `json:"epStatus"`
			Aid         int    `json:"aid"`
			Bvid        string `json:"bvid"`
			Cid         int    `json:"cid"`
			From        string `json:"from"`
			Cover       string `json:"cover"`
			Title       string `json:"title"`
			TitleFormat string `json:"titleFormat"`
			Vid         string `json:"vid"`
			LongTitle   string `json:"longTitle"`
			HasNext     bool   `json:"hasNext"`
			I           int    `json:"i"`
			SectionType int    `json:"sectionType"`
			ReleaseDate string `json:"releaseDate"`
			Skip        struct {
			} `json:"skip"`
			Rights struct {
				AllowDemand   int `json:"allow_demand"`
				AllowDm       int `json:"allow_dm"`
				AllowDownload int `json:"allow_download"`
			} `json:"rights"`
			Stat struct {
				Coin     int `json:"coin"`
				Danmakus int `json:"danmakus"`
				Likes    int `json:"likes"`
				Play     int `json:"play"`
				Reply    int `json:"reply"`
			} `json:"stat"`
		} `json:"epList"`
	} `json:"sections"`
	OrderSections []interface{} `json:"orderSections"`
	SsList        []struct {
		ID         int    `json:"id"`
		Title      string `json:"title"`
		Type       int    `json:"type"`
		PgcType    string `json:"pgcType"`
		Cover      string `json:"cover"`
		EpCover    string `json:"epCover"`
		Desc       string `json:"desc"`
		Badge      string `json:"badge"`
		BadgeType  int    `json:"badgeType"`
		BadgeColor string `json:"badgeColor"`
		Views      int    `json:"views"`
		Follows    int    `json:"follows"`
	} `json:"ssList"`
	UserState struct {
		Loaded  bool `json:"loaded"`
		VipInfo struct {
		} `json:"vipInfo"`
		History struct {
		} `json:"history"`
	} `json:"userState"`
	SsPayMent interface{} `json:"ssPayMent"`
	EpPayMent interface{} `json:"epPayMent"`
	Player    struct {
		Loaded    bool `json:"loaded"`
		MiniOn    bool `json:"miniOn"`
		LimitType int  `json:"limitType"`
	} `json:"player"`
	Sponsor struct {
		AllReady  bool          `json:"allReady"`
		AllState  int           `json:"allState"`
		AllRank   []interface{} `json:"allRank"`
		AllMine   interface{}   `json:"allMine"`
		AllCount  int           `json:"allCount"`
		WeekReady bool          `json:"weekReady"`
		WeekState int           `json:"weekState"`
		WeekRank  []interface{} `json:"weekRank"`
		WeekMine  interface{}   `json:"weekMine"`
		WeekCount int           `json:"weekCount"`
	} `json:"sponsor"`
	SsRecom  []interface{} `json:"ssRecom"`
	ShowBv   bool          `json:"showBv"`
	Interact struct {
		Shown    bool        `json:"shown"`
		BtnText  string      `json:"btnText"`
		Callback interface{} `json:"callback"`
	} `json:"interact"`
	NextEp       interface{} `json:"nextEp"`
	PlayerEpList struct {
		Code    int    `json:"code"`
		Message string `json:"message"`
		Result  struct {
			MainSection struct {
				Episodes []interface{} `json:"episodes"`
			} `json:"main_section"`
		} `json:"result"`
	} `json:"playerEpList"`
	IsOriginal        bool   `json:"isOriginal"`
	PremiereCountDown string `json:"premiereCountDown"`
	PremiereStatus    struct {
	} `json:"premiereStatus"`
	PremiereEp struct {
	} `json:"premiereEp"`
	LikeMap struct {
	} `json:"likeMap"`
	InsertScripts []string `json:"insertScripts"`
}

BugumiInfo bilibili 关于番剧播放页请求响应体解析json,用代码生成工具完整的解析结果 其中

type VideoInfo

type VideoInfo struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	TTL     int    `json:"ttl"`
	Data    struct {
		From              string   `json:"from"`
		Result            string   `json:"result"`
		Message           string   `json:"message"`
		Quality           int      `json:"quality"`
		Format            string   `json:"format"`
		Timelength        int      `json:"timelength"`
		AcceptFormat      string   `json:"accept_format"`
		AcceptDescription []string `json:"accept_description"`
		AcceptQuality     []int    `json:"accept_quality"`
		VideoCodecid      int      `json:"video_codecid"`
		SeekParam         string   `json:"seek_param"`
		SeekType          string   `json:"seek_type"`
		Dash              struct {
			Duration       int     `json:"duration"`
			MinBufferTime  float64 `json:"minBufferTime"`
			MinBufferTime2 float64 `json:"min_buffer_time"`
			Video          []struct {
				ID            int      `json:"id"`
				BaseURL       string   `json:"baseUrl"`
				BaseURL2      string   `json:"base_url"`
				BackupURL     []string `json:"backupUrl"`
				BackupURL2    []string `json:"backup_url"`
				Bandwidth     int      `json:"bandwidth"`
				MimeType      string   `json:"mimeType"`
				MimeType2     string   `json:"mime_type"`
				Codecs        string   `json:"codecs"`
				Width         int      `json:"width"`
				Height        int      `json:"height"`
				FrameRate     string   `json:"frameRate"`
				FrameRate2    string   `json:"frame_rate"`
				Sar           string   `json:"sar"`
				StartWithSap  int      `json:"startWithSap"`
				StartWithSap2 int      `json:"start_with_sap"`
				SegmentBase   struct {
					Initialization string `json:"Initialization"`
					IndexRange     string `json:"indexRange"`
				} `json:"SegmentBase"`
				SegmentBase2 struct {
					Initialization string `json:"initialization"`
					IndexRange     string `json:"index_range"`
				} `json:"segment_base"`
				Codecid int `json:"codecid"`
			} `json:"video"`
			Audio []struct {
				ID            int      `json:"id"`
				BaseURL       string   `json:"baseUrl"`
				BaseURL2      string   `json:"base_url"`
				BackupURL     []string `json:"backupUrl"`
				BackupURL2    []string `json:"backup_url"`
				Bandwidth     int      `json:"bandwidth"`
				MimeType      string   `json:"mimeType"`
				MimeType2     string   `json:"mime_type"`
				Codecs        string   `json:"codecs"`
				Width         int      `json:"width"`
				Height        int      `json:"height"`
				FrameRate     string   `json:"frameRate"`
				FrameRate2    string   `json:"frame_rate"`
				Sar           string   `json:"sar"`
				StartWithSap  int      `json:"startWithSap"`
				StartWithSap2 int      `json:"start_with_sap"`
				SegmentBase   struct {
					Initialization string `json:"Initialization"`
					IndexRange     string `json:"indexRange"`
				} `json:"SegmentBase"`
				SegmentBase2 struct {
					Initialization string `json:"initialization"`
					IndexRange     string `json:"index_range"`
				} `json:"segment_base"`
				Codecid int `json:"codecid"`
			} `json:"audio"`
		} `json:"dash"`
		SupportFormats []struct {
			Quality        int    `json:"quality"`
			Format         string `json:"format"`
			NewDescription string `json:"new_description"`
			DisplayDesc    string `json:"display_desc"`
			Superscript    string `json:"superscript"`
		} `json:"support_formats"`
	} `json:"data"`
	Session string `json:"session"`
}

VideoInfo bilibili页面关于播放页面解析的结果,使用代码生成工具把json转化成的结构体,https://www.codeutils.online/json/zh

Jump to

Keyboard shortcuts

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