responseTypes

package
v1.0.9 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2024 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AlbumResponseType

type AlbumResponseType struct {
	Data struct {
		AlbumUnion struct {
			Typename string `json:"__typename"`
			URI      string `json:"uri"`
			Name     string `json:"name"`
			Artists  struct {
				TotalCount int `json:"totalCount"`
				Items      []struct {
					ID      string `json:"id"`
					URI     string `json:"uri"`
					Profile struct {
						Name string `json:"name"`
					} `json:"profile"`
					Visuals struct {
						AvatarImage struct {
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
						} `json:"avatarImage"`
					} `json:"visuals"`
					SharingInfo struct {
						ShareURL string `json:"shareUrl"`
					} `json:"sharingInfo"`
				} `json:"items"`
			} `json:"artists"`
			CoverArt struct {
				ExtractedColors struct {
					ColorRaw struct {
						Hex string `json:"hex"`
					} `json:"colorRaw"`
					ColorLight struct {
						Hex string `json:"hex"`
					} `json:"colorLight"`
					ColorDark struct {
						Hex string `json:"hex"`
					} `json:"colorDark"`
				} `json:"extractedColors"`
				Sources []struct {
					URL    string `json:"url"`
					Width  int    `json:"width"`
					Height int    `json:"height"`
				} `json:"sources"`
			} `json:"coverArt"`
			Discs struct {
				TotalCount int `json:"totalCount"`
				Items      []struct {
					Number int `json:"number"`
					Tracks struct {
						TotalCount int `json:"totalCount"`
					} `json:"tracks"`
				} `json:"items"`
			} `json:"discs"`
			Releases struct {
				TotalCount int   `json:"totalCount"`
				Items      []any `json:"items"`
			} `json:"releases"`
			Type string `json:"type"`
			Date struct {
				IsoString time.Time `json:"isoString"`
				Precision string    `json:"precision"`
			} `json:"date"`
			Playability struct {
				Playable bool   `json:"playable"`
				Reason   string `json:"reason"`
			} `json:"playability"`
			Label     string `json:"label"`
			Copyright struct {
				TotalCount int `json:"totalCount"`
				Items      []struct {
					Type string `json:"type"`
					Text string `json:"text"`
				} `json:"items"`
			} `json:"copyright"`
			CourtesyLine string `json:"courtesyLine"`
			Saved        bool   `json:"saved"`
			SharingInfo  struct {
				ShareURL string `json:"shareUrl"`
				ShareID  string `json:"shareId"`
			} `json:"sharingInfo"`
			Tracks struct {
				TotalCount int                      `json:"totalCount"`
				Items      []AlbumTrackResponseType `json:"items"`
			} `json:"tracks"`
			MoreAlbumsByArtist struct {
				Items []struct {
					Discography struct {
						PopularReleasesAlbums struct {
							Items []struct {
								ID   string `json:"id"`
								URI  string `json:"uri"`
								Name string `json:"name"`
								Date struct {
									Year int `json:"year"`
								} `json:"date"`
								CoverArt struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  int    `json:"width"`
										Height int    `json:"height"`
									} `json:"sources"`
								} `json:"coverArt"`
								Playability struct {
									Playable bool   `json:"playable"`
									Reason   string `json:"reason"`
								} `json:"playability"`
								SharingInfo struct {
									ShareID  string `json:"shareId"`
									ShareURL string `json:"shareUrl"`
								} `json:"sharingInfo"`
								Type string `json:"type"`
							} `json:"items"`
						} `json:"popularReleasesAlbums"`
					} `json:"discography"`
				} `json:"items"`
			} `json:"moreAlbumsByArtist"`
		} `json:"albumUnion"`
	} `json:"data"`
	Extensions struct {
	} `json:"extensions"`
}

type AlbumTrackResponseType

type AlbumTrackResponseType struct {
	UID   string `json:"uid"`
	Track struct {
		Saved         bool   `json:"saved"`
		URI           string `json:"uri"`
		Name          string `json:"name"`
		Playcount     string `json:"playcount"`
		DiscNumber    int    `json:"discNumber"`
		TrackNumber   int    `json:"trackNumber"`
		ContentRating struct {
			Label string `json:"label"`
		} `json:"contentRating"`
		RelinkingInformation any `json:"relinkingInformation"`
		Duration             struct {
			TotalMilliseconds int `json:"totalMilliseconds"`
		} `json:"duration"`
		Playability struct {
			Playable bool `json:"playable"`
		} `json:"playability"`
		Artists struct {
			Items []struct {
				URI     string `json:"uri"`
				Profile struct {
					Name string `json:"name"`
				} `json:"profile"`
			} `json:"items"`
		} `json:"artists"`
	} `json:"track"`
}

type Artist

type Artist struct {
	ID      string `json:"id"`
	URI     string `json:"uri"`
	Visuals struct {
		AvatarImage struct {
			Sources []struct {
				Width  int    `json:"width"`
				Height int    `json:"height"`
				URL    string `json:"url"`
			} `json:"sources"`
		} `json:"avatarImage"`
	} `json:"visuals"`
	Profile struct {
		Name string `json:"name"`
	} `json:"profile"`
	Discography struct {
		Singles struct {
			TotalCount int `json:"totalCount"`
			Items      []struct {
				Releases struct {
					Items []struct {
						Name        string `json:"name"`
						Type        string `json:"type"`
						URI         string `json:"uri"`
						Playability struct {
							Playable bool `json:"playable"`
						} `json:"playability"`
						Date struct {
							IsoString time.Time `json:"isoString"`
							Precision string    `json:"precision"`
							Year      int       `json:"year"`
						} `json:"date"`
						SharingInfo struct {
							ShareID  string `json:"shareId"`
							ShareURL string `json:"shareUrl"`
						} `json:"sharingInfo"`
						Tracks struct {
							TotalCount int `json:"totalCount"`
							Items      []struct {
								Track struct {
									URI         string `json:"uri"`
									TrackNumber int    `json:"trackNumber"`
								} `json:"track"`
							} `json:"items"`
						} `json:"tracks"`
						CoverArt struct {
							ExtractedColors struct {
								ColorRaw struct {
									Hex string `json:"hex"`
								} `json:"colorRaw"`
							} `json:"extractedColors"`
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
						} `json:"coverArt"`
					} `json:"items"`
				} `json:"releases"`
			} `json:"items"`
		} `json:"singles"`
		Albums struct {
			TotalCount int `json:"totalCount"`
			Items      []struct {
				Releases struct {
					Items []struct {
						Name        string `json:"name"`
						Type        string `json:"type"`
						URI         string `json:"uri"`
						Playability struct {
							Playable bool `json:"playable"`
						} `json:"playability"`
						Date struct {
							IsoString time.Time `json:"isoString"`
							Precision string    `json:"precision"`
							Year      int       `json:"year"`
						} `json:"date"`
						SharingInfo struct {
							ShareID  string `json:"shareId"`
							ShareURL string `json:"shareUrl"`
						} `json:"sharingInfo"`
						Tracks struct {
							TotalCount int `json:"totalCount"`
							Items      []struct {
								Track struct {
									URI         string `json:"uri"`
									TrackNumber int    `json:"trackNumber"`
								} `json:"track"`
							} `json:"items"`
						} `json:"tracks"`
						CoverArt struct {
							ExtractedColors struct {
								ColorRaw struct {
									Hex string `json:"hex"`
								} `json:"colorRaw"`
							} `json:"extractedColors"`
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
						} `json:"coverArt"`
					} `json:"items"`
				} `json:"releases"`
			} `json:"items"`
		} `json:"albums"`
		PopularReleasesAlbums struct {
			Items []struct {
				Name        string `json:"name"`
				Type        string `json:"type"`
				URI         string `json:"uri"`
				Playability struct {
					Playable bool `json:"playable"`
				} `json:"playability"`
				Date struct {
					IsoString time.Time `json:"isoString"`
					Precision string    `json:"precision"`
					Year      int       `json:"year"`
				} `json:"date"`
				SharingInfo struct {
					ShareID  string `json:"shareId"`
					ShareURL string `json:"shareUrl"`
				} `json:"sharingInfo"`
				Tracks struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						Track struct {
							URI         string `json:"uri"`
							TrackNumber int    `json:"trackNumber"`
						} `json:"track"`
					} `json:"items"`
				} `json:"tracks"`
				CoverArt struct {
					ExtractedColors struct {
						ColorRaw struct {
							Hex string `json:"hex"`
						} `json:"colorRaw"`
					} `json:"extractedColors"`
					Sources []struct {
						URL    string `json:"url"`
						Width  int    `json:"width"`
						Height int    `json:"height"`
					} `json:"sources"`
				} `json:"coverArt"`
			} `json:"items"`
		} `json:"popularReleasesAlbums"`
		TopTracks struct {
			Items []struct {
				Track struct {
					Artists struct {
						Items []struct {
							URI     string `json:"uri"`
							Profile struct {
								Name string `json:"name"`
							} `json:"profile"`
						} `json:"items"`
					} `json:"artists"`
					AlbumOfTrack struct {
						Name     string `json:"name"`
						URI      string `json:"uri"`
						CoverArt struct {
							ExtractedColors struct {
								ColorRaw struct {
									Hex string `json:"hex"`
								} `json:"colorRaw"`
							} `json:"extractedColors"`
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
						} `json:"coverArt"`
					} `json:"albumOfTrack"`
					Playability struct {
						Playable bool `json:"playable"`
					} `json:"playability"`
					Playcount string `json:"playcount"`
					Previews  struct {
						AudioPreviews struct {
							Items []struct {
								URL string `json:"url"`
							} `json:"items"`
						} `json:"audioPreviews"`
					} `json:"previews"`
					Duration struct {
						TotalMilliseconds int `json:"totalMilliseconds"`
					} `json:"duration"`
					ContentRating struct {
						Label string `json:"label"`
					} `json:"contentRating"`
					Name string `json:"name"`
					URI  string `json:"uri"`
					ID   string `json:"id"`
				} `json:"track"`
			} `json:"items"`
		} `json:"topTracks"`
	} `json:"discography"`
	RelatedContent struct {
		RelatedArtists struct {
			TotalCount int `json:"totalCount"`
			Items      []struct {
				ID      string `json:"id"`
				URI     string `json:"uri"`
				Profile struct {
					Name string `json:"name"`
				} `json:"profile"`
				Visuals struct {
					AvatarImage struct {
						Sources []struct {
							Width  int    `json:"width"`
							Height int    `json:"height"`
							URL    string `json:"url"`
						} `json:"sources"`
					} `json:"avatarImage"`
				} `json:"visuals"`
			} `json:"items"`
		} `json:"relatedArtists"`
	} `json:"relatedContent"`
}

type ArtistResponseType

type ArtistResponseType struct {
	Data struct {
		ArtistUnion struct {
			Typename    string `json:"__typename"`
			ID          string `json:"id"`
			URI         string `json:"uri"`
			Saved       bool   `json:"saved"`
			SharingInfo struct {
				ShareURL string `json:"shareUrl"`
				ShareID  string `json:"shareId"`
			} `json:"sharingInfo"`
			Profile struct {
				Name       string `json:"name"`
				Verified   bool   `json:"verified"`
				PinnedItem struct {
					Comment         string `json:"comment"`
					Type            string `json:"type"`
					BackgroundImage struct {
						Sources []struct {
							URL string `json:"url"`
						} `json:"sources"`
					} `json:"backgroundImage"`
					ItemV2 struct {
					} `json:"itemV2"`
					Item struct {
						URI    string `json:"uri"`
						Name   string `json:"name"`
						Images struct {
							Items []struct {
								Sources []struct {
									URL    string `json:"url"`
									Width  any    `json:"width"`
									Height any    `json:"height"`
								} `json:"sources"`
							} `json:"items"`
						} `json:"images"`
					} `json:"item"`
				} `json:"pinnedItem"`
				Biography struct {
					Type string `json:"type"`
					Text string `json:"text"`
				} `json:"biography"`
				ExternalLinks struct {
					Items []struct {
						Name string `json:"name"`
						URL  string `json:"url"`
					} `json:"items"`
				} `json:"externalLinks"`
				PlaylistsV2 struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						Data struct {
							Typename    string `json:"__typename"`
							URI         string `json:"uri"`
							Name        string `json:"name"`
							Description string `json:"description"`
							OwnerV2     struct {
								Data struct {
									Typename string `json:"__typename"`
									Name     string `json:"name"`
								} `json:"data"`
							} `json:"ownerV2"`
							Images struct {
								Items []struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  any    `json:"width"`
										Height any    `json:"height"`
									} `json:"sources"`
								} `json:"items"`
							} `json:"images"`
						} `json:"data"`
					} `json:"items"`
				} `json:"playlistsV2"`
			} `json:"profile"`
			Visuals struct {
				Gallery struct {
					Items []any `json:"items"`
				} `json:"gallery"`
				AvatarImage struct {
					Sources []struct {
						URL    string `json:"url"`
						Width  int    `json:"width"`
						Height int    `json:"height"`
					} `json:"sources"`
					ExtractedColors struct {
						ColorRaw struct {
							Hex string `json:"hex"`
						} `json:"colorRaw"`
					} `json:"extractedColors"`
				} `json:"avatarImage"`
				HeaderImage struct {
					Sources []struct {
						URL    string `json:"url"`
						Width  int    `json:"width"`
						Height int    `json:"height"`
					} `json:"sources"`
					ExtractedColors struct {
						ColorRaw struct {
							Hex string `json:"hex"`
						} `json:"colorRaw"`
					} `json:"extractedColors"`
				} `json:"headerImage"`
			} `json:"visuals"`
			Discography struct {
				Latest struct {
					ID        string `json:"id"`
					URI       string `json:"uri"`
					Name      string `json:"name"`
					Type      string `json:"type"`
					Copyright struct {
						Items []struct {
							Type string `json:"type"`
							Text string `json:"text"`
						} `json:"items"`
					} `json:"copyright"`
					Date struct {
						Year      int    `json:"year"`
						Month     int    `json:"month"`
						Day       int    `json:"day"`
						Precision string `json:"precision"`
					} `json:"date"`
					CoverArt struct {
						Sources []struct {
							URL    string `json:"url"`
							Width  int    `json:"width"`
							Height int    `json:"height"`
						} `json:"sources"`
					} `json:"coverArt"`
					Tracks struct {
						TotalCount int `json:"totalCount"`
					} `json:"tracks"`
					Label       string `json:"label"`
					Playability struct {
						Playable bool   `json:"playable"`
						Reason   string `json:"reason"`
					} `json:"playability"`
					SharingInfo struct {
						ShareID  string `json:"shareId"`
						ShareURL string `json:"shareUrl"`
					} `json:"sharingInfo"`
				} `json:"latest"`
				PopularReleasesAlbums struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						ID        string `json:"id"`
						URI       string `json:"uri"`
						Name      string `json:"name"`
						Type      string `json:"type"`
						Copyright struct {
							Items []struct {
								Type string `json:"type"`
								Text string `json:"text"`
							} `json:"items"`
						} `json:"copyright"`
						Date struct {
							Year      int    `json:"year"`
							Month     int    `json:"month"`
							Day       int    `json:"day"`
							Precision string `json:"precision"`
						} `json:"date"`
						CoverArt struct {
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
						} `json:"coverArt"`
						Tracks struct {
							TotalCount int `json:"totalCount"`
						} `json:"tracks"`
						Label       string `json:"label"`
						Playability struct {
							Playable bool   `json:"playable"`
							Reason   string `json:"reason"`
						} `json:"playability"`
						SharingInfo struct {
							ShareID  string `json:"shareId"`
							ShareURL string `json:"shareUrl"`
						} `json:"sharingInfo"`
					} `json:"items"`
				} `json:"popularReleasesAlbums"`
				Singles struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						Releases struct {
							Items []struct {
								ID        string `json:"id"`
								URI       string `json:"uri"`
								Name      string `json:"name"`
								Type      string `json:"type"`
								Copyright struct {
									Items []struct {
										Type string `json:"type"`
										Text string `json:"text"`
									} `json:"items"`
								} `json:"copyright"`
								Date struct {
									Year      int    `json:"year"`
									Month     int    `json:"month"`
									Day       int    `json:"day"`
									Precision string `json:"precision"`
								} `json:"date"`
								CoverArt struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  int    `json:"width"`
										Height int    `json:"height"`
									} `json:"sources"`
								} `json:"coverArt"`
								Tracks struct {
									TotalCount int `json:"totalCount"`
								} `json:"tracks"`
								Label       string `json:"label"`
								Playability struct {
									Playable bool   `json:"playable"`
									Reason   string `json:"reason"`
								} `json:"playability"`
								SharingInfo struct {
									ShareID  string `json:"shareId"`
									ShareURL string `json:"shareUrl"`
								} `json:"sharingInfo"`
							} `json:"items"`
						} `json:"releases"`
					} `json:"items"`
				} `json:"singles"`
				Albums struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						Releases struct {
							Items []struct {
								ID        string `json:"id"`
								URI       string `json:"uri"`
								Name      string `json:"name"`
								Type      string `json:"type"`
								Copyright struct {
									Items []struct {
										Type string `json:"type"`
										Text string `json:"text"`
									} `json:"items"`
								} `json:"copyright"`
								Date struct {
									Year      int    `json:"year"`
									Month     int    `json:"month"`
									Day       int    `json:"day"`
									Precision string `json:"precision"`
								} `json:"date"`
								CoverArt struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  int    `json:"width"`
										Height int    `json:"height"`
									} `json:"sources"`
								} `json:"coverArt"`
								Tracks struct {
									TotalCount int `json:"totalCount"`
								} `json:"tracks"`
								Label       string `json:"label"`
								Playability struct {
									Playable bool   `json:"playable"`
									Reason   string `json:"reason"`
								} `json:"playability"`
								SharingInfo struct {
									ShareID  string `json:"shareId"`
									ShareURL string `json:"shareUrl"`
								} `json:"sharingInfo"`
							} `json:"items"`
						} `json:"releases"`
					} `json:"items"`
				} `json:"albums"`
				Compilations struct {
					TotalCount int   `json:"totalCount"`
					Items      []any `json:"items"`
				} `json:"compilations"`
				TopTracks struct {
					Items []struct {
						UID   string `json:"uid"`
						Track struct {
							ID         string `json:"id"`
							URI        string `json:"uri"`
							Name       string `json:"name"`
							Playcount  string `json:"playcount"`
							DiscNumber int    `json:"discNumber"`
							Duration   struct {
								TotalMilliseconds int `json:"totalMilliseconds"`
							} `json:"duration"`
							Playability struct {
								Playable bool   `json:"playable"`
								Reason   string `json:"reason"`
							} `json:"playability"`
							ContentRating struct {
								Label string `json:"label"`
							} `json:"contentRating"`
							Artists struct {
								Items []struct {
									URI     string `json:"uri"`
									Profile struct {
										Name string `json:"name"`
									} `json:"profile"`
								} `json:"items"`
							} `json:"artists"`
							AlbumOfTrack struct {
								URI      string `json:"uri"`
								CoverArt struct {
									Sources []struct {
										URL string `json:"url"`
									} `json:"sources"`
								} `json:"coverArt"`
							} `json:"albumOfTrack"`
						} `json:"track"`
					} `json:"items"`
				} `json:"topTracks"`
			} `json:"discography"`
			Stats struct {
				Followers        int `json:"followers"`
				MonthlyListeners int `json:"monthlyListeners"`
				WorldRank        int `json:"worldRank"`
				TopCities        struct {
					Items []struct {
						NumberOfListeners int    `json:"numberOfListeners"`
						City              string `json:"city"`
						Country           string `json:"country"`
						Region            string `json:"region"`
					} `json:"items"`
				} `json:"topCities"`
			} `json:"stats"`
			RelatedContent struct {
				AppearsOn struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						Releases struct {
							TotalCount int `json:"totalCount"`
							Items      []struct {
								URI     string `json:"uri"`
								ID      string `json:"id"`
								Name    string `json:"name"`
								Type    string `json:"type"`
								Artists struct {
									Items []struct {
										URI     string `json:"uri"`
										Profile struct {
											Name string `json:"name"`
										} `json:"profile"`
									} `json:"items"`
								} `json:"artists"`
								CoverArt struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  int    `json:"width"`
										Height int    `json:"height"`
									} `json:"sources"`
								} `json:"coverArt"`
								Date struct {
									Year int `json:"year"`
								} `json:"date"`
								SharingInfo struct {
									ShareID  string `json:"shareId"`
									ShareURL string `json:"shareUrl"`
								} `json:"sharingInfo"`
							} `json:"items"`
						} `json:"releases"`
					} `json:"items"`
				} `json:"appearsOn"`
				FeaturingV2 struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						Data struct {
							Typename string `json:"__typename"`
							URI      string `json:"uri"`
							ID       string `json:"id"`
							OwnerV2  struct {
								Data struct {
									Typename string `json:"__typename"`
									Name     string `json:"name"`
								} `json:"data"`
							} `json:"ownerV2"`
							Name        string `json:"name"`
							Description string `json:"description"`
							Images      struct {
								TotalCount int `json:"totalCount"`
								Items      []struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  any    `json:"width"`
										Height any    `json:"height"`
									} `json:"sources"`
								} `json:"items"`
							} `json:"images"`
						} `json:"data"`
					} `json:"items"`
				} `json:"featuringV2"`
				DiscoveredOnV2 struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						Data struct {
							Typename string `json:"__typename"`
							URI      string `json:"uri"`
							ID       string `json:"id"`
							OwnerV2  struct {
								Data struct {
									Typename string `json:"__typename"`
									Name     string `json:"name"`
								} `json:"data"`
							} `json:"ownerV2"`
							Name        string `json:"name"`
							Description string `json:"description"`
							Images      struct {
								TotalCount int `json:"totalCount"`
								Items      []struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  any    `json:"width"`
										Height any    `json:"height"`
									} `json:"sources"`
								} `json:"items"`
							} `json:"images"`
						} `json:"data"`
					} `json:"items"`
				} `json:"discoveredOnV2"`
				RelatedArtists struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						ID      string `json:"id"`
						URI     string `json:"uri"`
						Profile struct {
							Name string `json:"name"`
						} `json:"profile"`
						Visuals struct {
							AvatarImage struct {
								Sources []struct {
									URL    string `json:"url"`
									Width  int    `json:"width"`
									Height int    `json:"height"`
								} `json:"sources"`
							} `json:"avatarImage"`
						} `json:"visuals"`
					} `json:"items"`
				} `json:"relatedArtists"`
			} `json:"relatedContent"`
			Goods struct {
				Events struct {
					UserLocation struct {
						Name string `json:"name"`
					} `json:"userLocation"`
					Concerts struct {
						TotalCount int   `json:"totalCount"`
						Items      []any `json:"items"`
						PagingInfo struct {
							Limit int `json:"limit"`
						} `json:"pagingInfo"`
					} `json:"concerts"`
				} `json:"events"`
				Merch struct {
					Items []any `json:"items"`
				} `json:"merch"`
			} `json:"goods"`
		} `json:"artistUnion"`
	} `json:"data"`
	Extensions struct {
	} `json:"extensions"`
}

type GrantedToken

type GrantedToken struct {
	Token               string `json:"token"`
	ExpiresAfterSeconds int    `json:"expires_after_seconds"`
	RefreshAfterSeconds int    `json:"refresh_after_seconds"`
}

type PlaylistResponse

type PlaylistResponse struct {
	Data struct {
		PlaylistV2 struct {
			Typename string `json:"__typename"`
			Content  struct {
				Typename   string `json:"__typename"`
				TotalCount int    `json:"totalCount"`
				PagingInfo struct {
					Offset int `json:"offset"`
					Limit  int `json:"limit"`
				} `json:"pagingInfo"`
				Items []struct {
					UID     string `json:"uid"`
					AddedAt struct {
						IsoString time.Time `json:"isoString"`
					} `json:"addedAt"`
					AddedBy    any `json:"addedBy"`
					Attributes []struct {
						Key   string `json:"key"`
						Value string `json:"value"`
					} `json:"attributes"`
					ItemV2 struct {
						Typename string        `json:"__typename"`
						Data     PlaylistTrack `json:"data"`
					} `json:"itemV2"`
				} `json:"items"`
			} `json:"content"`
		} `json:"playlistV2"`
	} `json:"data"`
	Extensions struct {
	} `json:"extensions"`
}

type PlaylistTrack

type PlaylistTrack struct {
	Typename      string `json:"__typename"`
	URI           string `json:"uri"`
	Name          string `json:"name"`
	TrackDuration struct {
		TotalMilliseconds int `json:"totalMilliseconds"`
	} `json:"trackDuration"`
	Playcount    string `json:"playcount"`
	AlbumOfTrack struct {
		URI     string `json:"uri"`
		Name    string `json:"name"`
		Artists struct {
			Items []struct {
				URI     string `json:"uri"`
				Profile struct {
					Name string `json:"name"`
				} `json:"profile"`
			} `json:"items"`
		} `json:"artists"`
		CoverArt struct {
			Sources []struct {
				URL    string `json:"url"`
				Width  int    `json:"width"`
				Height int    `json:"height"`
			} `json:"sources"`
		} `json:"coverArt"`
	} `json:"albumOfTrack"`
	Artists struct {
		Items []struct {
			URI     string `json:"uri"`
			Profile struct {
				Name string `json:"name"`
			} `json:"profile"`
		} `json:"items"`
	} `json:"artists"`
	DiscNumber  int `json:"discNumber"`
	TrackNumber int `json:"trackNumber"`
	Playability struct {
		Playable bool   `json:"playable"`
		Reason   string `json:"reason"`
	} `json:"playability"`
	ContentRating struct {
		Label string `json:"label"`
	} `json:"contentRating"`
}

type ResponseClientId

type ResponseClientId struct {
	ResponseType string       `json:"response_type"`
	GrantedToken GrantedToken `json:"granted_token"`
}

type ResponseClientToken

type ResponseClientToken struct {
	AccessToken             string `json:"accessToken"`
	AccessTokenExpirationMs int64  `json:"accessTokenExpirationTimestampMs"`
	IsAnonymous             bool   `json:"isAnonymous"`
	ClientId                string `json:"clientId"`
}

type SearchResponseType added in v1.0.8

type SearchResponseType struct {
	Data struct {
		SearchV2 struct {
			Albums struct {
				TotalCount int `json:"totalCount"`
				Items      []struct {
					Data struct {
						Typename string `json:"__typename"`
						URI      string `json:"uri"`
						Name     string `json:"name"`
						Artists  struct {
							Items []struct {
								URI     string `json:"uri"`
								Profile struct {
									Name string `json:"name"`
								} `json:"profile"`
							} `json:"items"`
						} `json:"artists"`
						CoverArt struct {
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
							ExtractedColors struct {
								ColorDark struct {
									Hex        string `json:"hex"`
									IsFallback bool   `json:"isFallback"`
								} `json:"colorDark"`
							} `json:"extractedColors"`
						} `json:"coverArt"`
						Date struct {
							Year int `json:"year"`
						} `json:"date"`
					} `json:"data"`
				} `json:"items"`
			} `json:"albums"`
			Artists struct {
				TotalCount int `json:"totalCount"`
				Items      []struct {
					Data struct {
						Typename string `json:"__typename"`
						URI      string `json:"uri"`
						Profile  struct {
							Name     string `json:"name"`
							Verified bool   `json:"verified"`
						} `json:"profile"`
						Visuals struct {
							AvatarImage struct {
								Sources []struct {
									URL    string `json:"url"`
									Width  int    `json:"width"`
									Height int    `json:"height"`
								} `json:"sources"`
								ExtractedColors struct {
									ColorDark struct {
										Hex        string `json:"hex"`
										IsFallback bool   `json:"isFallback"`
									} `json:"colorDark"`
								} `json:"extractedColors"`
							} `json:"avatarImage"`
						} `json:"visuals"`
					} `json:"data"`
				} `json:"items"`
			} `json:"artists"`
			Episodes struct {
				TotalCount int `json:"totalCount"`
				Items      []struct {
					Data struct {
						Typename string `json:"__typename"`
						URI      string `json:"uri"`
						Name     string `json:"name"`
						CoverArt struct {
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
							ExtractedColors struct {
								ColorDark struct {
									Hex        string `json:"hex"`
									IsFallback bool   `json:"isFallback"`
								} `json:"colorDark"`
							} `json:"extractedColors"`
						} `json:"coverArt"`
						Duration struct {
							TotalMilliseconds int `json:"totalMilliseconds"`
						} `json:"duration"`
						ReleaseDate struct {
							IsoString time.Time `json:"isoString"`
							Precision string    `json:"precision"`
						} `json:"releaseDate"`
						PlayedState struct {
							PlayPositionMilliseconds int    `json:"playPositionMilliseconds"`
							State                    string `json:"state"`
						} `json:"playedState"`
						MediaTypes []string `json:"mediaTypes"`
						PodcastV2  struct {
							Data struct {
								Typename string `json:"__typename"`
								URI      string `json:"uri"`
								Name     string `json:"name"`
								CoverArt struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  int    `json:"width"`
										Height int    `json:"height"`
									} `json:"sources"`
								} `json:"coverArt"`
								MediaType string `json:"mediaType"`
								Publisher struct {
									Name string `json:"name"`
								} `json:"publisher"`
							} `json:"data"`
						} `json:"podcastV2"`
						Description   string `json:"description"`
						ContentRating struct {
							Label string `json:"label"`
						} `json:"contentRating"`
					} `json:"data"`
				} `json:"items"`
			} `json:"episodes"`
			Genres struct {
				TotalCount int           `json:"totalCount"`
				Items      []interface{} `json:"items"`
			} `json:"genres"`
			Playlists struct {
				TotalCount int `json:"totalCount"`
				Items      []struct {
					Data struct {
						Typename    string `json:"__typename"`
						URI         string `json:"uri"`
						Name        string `json:"name"`
						Description string `json:"description"`
						Images      struct {
							Items []struct {
								Sources []struct {
									URL    string      `json:"url"`
									Width  interface{} `json:"width"`
									Height interface{} `json:"height"`
								} `json:"sources"`
								ExtractedColors struct {
									ColorDark struct {
										Hex        string `json:"hex"`
										IsFallback bool   `json:"isFallback"`
									} `json:"colorDark"`
								} `json:"extractedColors"`
							} `json:"items"`
						} `json:"images"`
						Format     string        `json:"format"`
						Attributes []interface{} `json:"attributes"`
						OwnerV2    struct {
							Data struct {
								Typename string `json:"__typename"`
								Name     string `json:"name"`
								URI      string `json:"uri"`
								Username string `json:"username"`
								Avatar   struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  int    `json:"width"`
										Height int    `json:"height"`
									} `json:"sources"`
								} `json:"avatar"`
							} `json:"data"`
						} `json:"ownerV2"`
					} `json:"data"`
				} `json:"items"`
			} `json:"playlists"`
			Podcasts struct {
				TotalCount int `json:"totalCount"`
				Items      []struct {
					Data struct {
						Typename string `json:"__typename"`
						URI      string `json:"uri"`
						Name     string `json:"name"`
						CoverArt struct {
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
							ExtractedColors struct {
								ColorDark struct {
									Hex        string `json:"hex"`
									IsFallback bool   `json:"isFallback"`
								} `json:"colorDark"`
							} `json:"extractedColors"`
						} `json:"coverArt"`
						Publisher struct {
							Name string `json:"name"`
						} `json:"publisher"`
						MediaType string `json:"mediaType"`
						Topics    struct {
							Items []interface{} `json:"items"`
						} `json:"topics"`
					} `json:"data"`
				} `json:"items"`
			} `json:"podcasts"`
			TracksV2 struct {
				TotalCount int `json:"totalCount"`
				Items      []struct {
					MatchedFields []string `json:"matchedFields"`
					Item          struct {
						Data struct {
							Typename     string `json:"__typename"`
							URI          string `json:"uri"`
							ID           string `json:"id"`
							Name         string `json:"name"`
							AlbumOfTrack struct {
								URI      string `json:"uri"`
								Name     string `json:"name"`
								CoverArt struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  int    `json:"width"`
										Height int    `json:"height"`
									} `json:"sources"`
									ExtractedColors struct {
										ColorDark struct {
											Hex        string `json:"hex"`
											IsFallback bool   `json:"isFallback"`
										} `json:"colorDark"`
									} `json:"extractedColors"`
								} `json:"coverArt"`
								ID string `json:"id"`
							} `json:"albumOfTrack"`
							Artists struct {
								Items []struct {
									URI     string `json:"uri"`
									Profile struct {
										Name string `json:"name"`
									} `json:"profile"`
								} `json:"items"`
							} `json:"artists"`
							ContentRating struct {
								Label string `json:"label"`
							} `json:"contentRating"`
							Duration struct {
								TotalMilliseconds int `json:"totalMilliseconds"`
							} `json:"duration"`
							Playability struct {
								Playable bool `json:"playable"`
							} `json:"playability"`
							Associations struct {
								AssociatedVideos struct {
									TotalCount int `json:"totalCount"`
								} `json:"associatedVideos"`
							} `json:"associations"`
						} `json:"data"`
					} `json:"item"`
				} `json:"items"`
			} `json:"tracksV2"`
			Users struct {
				TotalCount int `json:"totalCount"`
				Items      []struct {
					Data struct {
						Typename    string `json:"__typename"`
						URI         string `json:"uri"`
						ID          string `json:"id"`
						DisplayName string `json:"displayName"`
						Username    string `json:"username"`
						Avatar      struct {
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
							ExtractedColors struct {
								ColorDark struct {
									Hex        string `json:"hex"`
									IsFallback bool   `json:"isFallback"`
								} `json:"colorDark"`
							} `json:"extractedColors"`
						} `json:"avatar"`
					} `json:"data"`
				} `json:"items"`
			} `json:"users"`
			TopResults struct {
				ItemsV2 []struct {
					MatchedFields []interface{} `json:"matchedFields"`
					Item          struct {
						Data struct {
							Typename string `json:"__typename"`
							URI      string `json:"uri"`
							ID       string `json:"id"`
							Name     string `json:"name"`
							Profile  struct {
								Name     string `json:"name"`
								Verified bool   `json:"verified"`
							} `json:"profile"`
							Visuals struct {
								AvatarImage struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  int    `json:"width"`
										Height int    `json:"height"`
									} `json:"sources"`
									ExtractedColors struct {
										ColorDark struct {
											Hex        string `json:"hex"`
											IsFallback bool   `json:"isFallback"`
										} `json:"colorDark"`
									} `json:"extractedColors"`
								} `json:"avatarImage"`
							} `json:"visuals"`
							AlbumOfTrack struct {
								URI      string `json:"uri"`
								Name     string `json:"name"`
								CoverArt struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  int    `json:"width"`
										Height int    `json:"height"`
									} `json:"sources"`
									ExtractedColors struct {
										ColorDark struct {
											Hex        string `json:"hex"`
											IsFallback bool   `json:"isFallback"`
										} `json:"colorDark"`
									} `json:"extractedColors"`
								} `json:"coverArt"`
								ID string `json:"id"`
							} `json:"albumOfTrack"`
							Artists struct {
								Items []struct {
									URI     string `json:"uri"`
									Profile struct {
										Name string `json:"name"`
									} `json:"profile"`
								} `json:"items"`
							} `json:"artists"`
							ContentRating struct {
								Label string `json:"label"`
							} `json:"contentRating"`
							Duration struct {
								TotalMilliseconds int `json:"totalMilliseconds"`
							} `json:"duration"`
							Playability struct {
								Playable bool `json:"playable"`
							} `json:"playability"`
							Associations struct {
								AssociatedVideos struct {
									TotalCount int `json:"totalCount"`
								} `json:"associatedVideos"`
							} `json:"associations"`
							CoverArt struct {
								Sources []struct {
									URL    string `json:"url"`
									Width  int    `json:"width"`
									Height int    `json:"height"`
								} `json:"sources"`
								ExtractedColors struct {
									ColorDark struct {
										Hex        string `json:"hex"`
										IsFallback bool   `json:"isFallback"`
									} `json:"colorDark"`
								} `json:"extractedColors"`
							} `json:"coverArt"`
							Date struct {
								Year int `json:"year"`
							} `json:"date"`
						} `json:"data"`
					} `json:"item"`
				} `json:"itemsV2"`
				Featured []struct {
					Data struct {
						Typename    string `json:"__typename"`
						URI         string `json:"uri"`
						Name        string `json:"name"`
						Description string `json:"description"`
						Images      struct {
							Items []struct {
								Sources []struct {
									URL    string      `json:"url"`
									Width  interface{} `json:"width"`
									Height interface{} `json:"height"`
								} `json:"sources"`
								ExtractedColors struct {
									ColorDark struct {
										Hex        string `json:"hex"`
										IsFallback bool   `json:"isFallback"`
									} `json:"colorDark"`
								} `json:"extractedColors"`
							} `json:"items"`
						} `json:"images"`
						Format     string `json:"format"`
						Attributes []struct {
							Key   string `json:"key"`
							Value string `json:"value"`
						} `json:"attributes"`
						OwnerV2 struct {
							Data struct {
								Typename string `json:"__typename"`
								Name     string `json:"name"`
								URI      string `json:"uri"`
								Username string `json:"username"`
								Avatar   struct {
									Sources []struct {
										URL    string `json:"url"`
										Width  int    `json:"width"`
										Height int    `json:"height"`
									} `json:"sources"`
								} `json:"avatar"`
							} `json:"data"`
						} `json:"ownerV2"`
					} `json:"data"`
				} `json:"featured"`
			} `json:"topResults"`
		} `json:"searchV2"`
	} `json:"data"`
	Extensions struct {
		RequestIds struct {
			SearchV2 struct {
				SearchAPI string `json:"search-api"`
			} `json:"/searchV2"`
			SearchV2TopResults struct {
				SearchAPI string `json:"search-api"`
			} `json:"/searchV2/topResults"`
		} `json:"requestIds"`
	} `json:"extensions"`
}

type SearchTopResultsResponseType added in v1.0.8

type SearchTopResultsResponseType struct {
	TopResults struct {
		ItemsV2 []struct {
			MatchedFields []interface{} `json:"matchedFields"`
			Item          struct {
				Data struct {
					Typename string `json:"__typename"`
					URI      string `json:"uri"`
					ID       string `json:"id"`
					Name     string `json:"name"`
					Profile  struct {
						Name     string `json:"name"`
						Verified bool   `json:"verified"`
					} `json:"profile"`
					Visuals struct {
						AvatarImage struct {
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
							ExtractedColors struct {
								ColorDark struct {
									Hex        string `json:"hex"`
									IsFallback bool   `json:"isFallback"`
								} `json:"colorDark"`
							} `json:"extractedColors"`
						} `json:"avatarImage"`
					} `json:"visuals"`
					AlbumOfTrack struct {
						URI      string `json:"uri"`
						Name     string `json:"name"`
						CoverArt struct {
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
							ExtractedColors struct {
								ColorDark struct {
									Hex        string `json:"hex"`
									IsFallback bool   `json:"isFallback"`
								} `json:"colorDark"`
							} `json:"extractedColors"`
						} `json:"coverArt"`
						ID string `json:"id"`
					} `json:"albumOfTrack"`
					Artists struct {
						Items []struct {
							URI     string `json:"uri"`
							Profile struct {
								Name string `json:"name"`
							} `json:"profile"`
						} `json:"items"`
					} `json:"artists"`
					ContentRating struct {
						Label string `json:"label"`
					} `json:"contentRating"`
					Duration struct {
						TotalMilliseconds int `json:"totalMilliseconds"`
					} `json:"duration"`
					Playability struct {
						Playable bool `json:"playable"`
					} `json:"playability"`
					Associations struct {
						AssociatedVideos struct {
							TotalCount int `json:"totalCount"`
						} `json:"associatedVideos"`
					} `json:"associations"`
					CoverArt struct {
						Sources []struct {
							URL    string `json:"url"`
							Width  int    `json:"width"`
							Height int    `json:"height"`
						} `json:"sources"`
						ExtractedColors struct {
							ColorDark struct {
								Hex        string `json:"hex"`
								IsFallback bool   `json:"isFallback"`
							} `json:"colorDark"`
						} `json:"extractedColors"`
					} `json:"coverArt"`
					Date struct {
						Year int `json:"year"`
					} `json:"date"`
				} `json:"data"`
			} `json:"item"`
		} `json:"itemsV2"`
		Featured []struct {
			Data struct {
				Typename    string `json:"__typename"`
				URI         string `json:"uri"`
				Name        string `json:"name"`
				Description string `json:"description"`
				Images      struct {
					Items []struct {
						Sources []struct {
							URL    string      `json:"url"`
							Width  interface{} `json:"width"`
							Height interface{} `json:"height"`
						} `json:"sources"`
						ExtractedColors struct {
							ColorDark struct {
								Hex        string `json:"hex"`
								IsFallback bool   `json:"isFallback"`
							} `json:"colorDark"`
						} `json:"extractedColors"`
					} `json:"items"`
				} `json:"images"`
				Format     string `json:"format"`
				Attributes []struct {
					Key   string `json:"key"`
					Value string `json:"value"`
				} `json:"attributes"`
				OwnerV2 struct {
					Data struct {
						Typename string `json:"__typename"`
						Name     string `json:"name"`
						URI      string `json:"uri"`
						Username string `json:"username"`
						Avatar   struct {
							Sources []struct {
								URL    string `json:"url"`
								Width  int    `json:"width"`
								Height int    `json:"height"`
							} `json:"sources"`
						} `json:"avatar"`
					} `json:"data"`
				} `json:"ownerV2"`
			} `json:"data"`
		} `json:"featured"`
	} `json:"topResults"`
	Extensions struct {
		RequestIds struct {
			SearchV2 struct {
				SearchAPI string `json:"search-api"`
			} `json:"/searchV2"`
			SearchV2TopResults struct {
				SearchAPI string `json:"search-api"`
			} `json:"/searchV2/topResults"`
		} `json:"requestIds"`
	} `json:"extensions"`
}

type TrackPlayCount

type TrackPlayCount struct {
	TrackId   string
	PlayCount int
}

type TrackResponse

type TrackResponse struct {
	Data struct {
		TrackUnion struct {
			Typename      string `json:"__typename"`
			ID            string `json:"id"`
			URI           string `json:"uri"`
			Name          string `json:"name"`
			ContentRating struct {
				Label string `json:"label"`
			} `json:"contentRating"`
			Duration struct {
				TotalMilliseconds int `json:"totalMilliseconds"`
			} `json:"duration"`
			Playability struct {
				Playable bool   `json:"playable"`
				Reason   string `json:"reason"`
			} `json:"playability"`
			TrackNumber int    `json:"trackNumber"`
			Playcount   string `json:"playcount"`
			Saved       bool   `json:"saved"`
			SharingInfo struct {
				ShareURL string `json:"shareUrl"`
				ShareID  string `json:"shareId"`
			} `json:"sharingInfo"`
			FirstArtist struct {
				TotalCount int      `json:"totalCount"`
				Items      []Artist `json:"items"`
			} `json:"firstArtist"`
			OtherArtists struct {
				Items []Artist `json:"items"`
			} `json:"otherArtists"`
			AlbumOfTrack struct {
				ID        string `json:"id"`
				Copyright struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						Text string `json:"text"`
						Type string `json:"type"`
					} `json:"items"`
				} `json:"copyright"`
				CourtesyLine string `json:"courtesyLine"`
				Name         string `json:"name"`
				Type         string `json:"type"`
				URI          string `json:"uri"`
				Playability  struct {
					Playable bool `json:"playable"`
				} `json:"playability"`
				Date struct {
					IsoString time.Time `json:"isoString"`
					Precision string    `json:"precision"`
					Year      int       `json:"year"`
				} `json:"date"`
				SharingInfo struct {
					ShareID  string `json:"shareId"`
					ShareURL string `json:"shareUrl"`
				} `json:"sharingInfo"`
				Tracks struct {
					TotalCount int `json:"totalCount"`
					Items      []struct {
						Track struct {
							URI         string `json:"uri"`
							TrackNumber int    `json:"trackNumber"`
						} `json:"track"`
					} `json:"items"`
				} `json:"tracks"`
				CoverArt struct {
					ExtractedColors struct {
						ColorRaw struct {
							Hex string `json:"hex"`
						} `json:"colorRaw"`
					} `json:"extractedColors"`
					Sources []struct {
						URL    string `json:"url"`
						Width  int    `json:"width"`
						Height int    `json:"height"`
					} `json:"sources"`
				} `json:"coverArt"`
			} `json:"albumOfTrack"`
		} `json:"trackUnion"`
	} `json:"data"`
	Extensions struct {
	} `json:"extensions"`
}

Jump to

Keyboard shortcuts

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