correct AlbumArtist for playlist
This commit is contained in:
parent
b5d41a5d07
commit
347284dce7
18
main.go
18
main.go
@ -318,7 +318,7 @@ func checkArtist(artistUrl string, token string, relationship string) ([]string,
|
|||||||
|
|
||||||
func getMeta(albumId string, token string, storefront string) (*structs.AutoGenerated, error) {
|
func getMeta(albumId string, token string, storefront string) (*structs.AutoGenerated, error) {
|
||||||
var mtype string
|
var mtype string
|
||||||
var page int
|
var next string
|
||||||
if strings.Contains(albumId, "pl.") {
|
if strings.Contains(albumId, "pl.") {
|
||||||
mtype = "playlists"
|
mtype = "playlists"
|
||||||
} else {
|
} else {
|
||||||
@ -334,7 +334,7 @@ func getMeta(albumId string, token string, storefront string) (*structs.AutoGene
|
|||||||
query := url.Values{}
|
query := url.Values{}
|
||||||
query.Set("omit[resource]", "autos")
|
query.Set("omit[resource]", "autos")
|
||||||
query.Set("include", "tracks,artists,record-labels")
|
query.Set("include", "tracks,artists,record-labels")
|
||||||
query.Set("include[songs]", "artists")
|
query.Set("include[songs]", "artists,albums")
|
||||||
query.Set("fields[artists]", "name,artwork")
|
query.Set("fields[artists]", "name,artwork")
|
||||||
query.Set("fields[albums:albums]", "artistName,artwork,name,releaseDate,url")
|
query.Set("fields[albums:albums]", "artistName,artwork,name,releaseDate,url")
|
||||||
query.Set("fields[record-labels]", "name")
|
query.Set("fields[record-labels]", "name")
|
||||||
@ -357,11 +357,9 @@ func getMeta(albumId string, token string, storefront string) (*structs.AutoGene
|
|||||||
if strings.Contains(albumId, "pl.") {
|
if strings.Contains(albumId, "pl.") {
|
||||||
obj.Data[0].Attributes.ArtistName = "Apple Music"
|
obj.Data[0].Attributes.ArtistName = "Apple Music"
|
||||||
if len(obj.Data[0].Relationships.Tracks.Next) > 0 {
|
if len(obj.Data[0].Relationships.Tracks.Next) > 0 {
|
||||||
page = 0
|
next = obj.Data[0].Relationships.Tracks.Next
|
||||||
for {
|
for {
|
||||||
page = page + 100
|
req, err := http.NewRequest("GET", fmt.Sprintf("https://amp-api.music.apple.com/%s&l=%s&include=albums", next, Config.Language), nil)
|
||||||
pageStr := strconv.Itoa(page)
|
|
||||||
req, err := http.NewRequest("GET", fmt.Sprintf("https://amp-api.music.apple.com/v1/catalog/%s/%s/%s/tracks?offset=%s&l=%s", storefront, mtype, albumId, pageStr, Config.Language), nil)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -384,7 +382,8 @@ func getMeta(albumId string, token string, storefront string) (*structs.AutoGene
|
|||||||
for _, value := range obj2.Data {
|
for _, value := range obj2.Data {
|
||||||
obj.Data[0].Relationships.Tracks.Data = append(obj.Data[0].Relationships.Tracks.Data, value)
|
obj.Data[0].Relationships.Tracks.Data = append(obj.Data[0].Relationships.Tracks.Data, value)
|
||||||
}
|
}
|
||||||
if len(obj2.Next) == 0 {
|
next = obj2.Next
|
||||||
|
if len(next) == 0 {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1123,8 +1122,8 @@ func writeMP4Tags(trackPath, lrc string, meta *structs.AutoGenerated, trackNum,
|
|||||||
t.TrackTotal = int16(trackTotal)
|
t.TrackTotal = int16(trackTotal)
|
||||||
t.Album = meta.Data[0].Relationships.Tracks.Data[index].Attributes.AlbumName
|
t.Album = meta.Data[0].Relationships.Tracks.Data[index].Attributes.AlbumName
|
||||||
t.AlbumSort = meta.Data[0].Relationships.Tracks.Data[index].Attributes.AlbumName
|
t.AlbumSort = meta.Data[0].Relationships.Tracks.Data[index].Attributes.AlbumName
|
||||||
t.AlbumArtist = meta.Data[0].Relationships.Tracks.Data[index].Attributes.ArtistName
|
t.AlbumArtist = meta.Data[0].Relationships.Tracks.Data[index].Relationships.Albums.Data[0].Attributes.ArtistName
|
||||||
t.AlbumArtistSort = meta.Data[0].Relationships.Tracks.Data[index].Attributes.ArtistName
|
t.AlbumArtistSort = meta.Data[0].Relationships.Tracks.Data[index].Relationships.Albums.Data[0].Attributes.ArtistName
|
||||||
} else {
|
} else {
|
||||||
t.DiscNumber = int16(meta.Data[0].Relationships.Tracks.Data[index].Attributes.DiscNumber)
|
t.DiscNumber = int16(meta.Data[0].Relationships.Tracks.Data[index].Attributes.DiscNumber)
|
||||||
t.DiscTotal = int16(meta.Data[0].Relationships.Tracks.Data[trackTotal-1].Attributes.DiscNumber)
|
t.DiscTotal = int16(meta.Data[0].Relationships.Tracks.Data[trackTotal-1].Attributes.DiscNumber)
|
||||||
@ -1526,7 +1525,6 @@ func extractMvAudio(c string) (string, error) {
|
|||||||
return audioStreams[0].URL, nil
|
return audioStreams[0].URL, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func checkM3u8(b string, f string) (string, error) {
|
func checkM3u8(b string, f string) (string, error) {
|
||||||
var EnhancedHls string
|
var EnhancedHls string
|
||||||
if Config.GetM3u8FromDevice {
|
if Config.GetM3u8FromDevice {
|
||||||
|
@ -236,9 +236,47 @@ type TrackData struct {
|
|||||||
} `json:"attributes"`
|
} `json:"attributes"`
|
||||||
} `json:"data"`
|
} `json:"data"`
|
||||||
} `json:"artists"`
|
} `json:"artists"`
|
||||||
|
Albums struct {
|
||||||
|
Href string `json:"href"`
|
||||||
|
Data []AlbumData `json:"data"`
|
||||||
|
}
|
||||||
} `json:"relationships"`
|
} `json:"relationships"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type AlbumData struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
Href string `json:"href"`
|
||||||
|
Attributes struct {
|
||||||
|
ArtistName string `json:"artistName"`
|
||||||
|
Artwork struct {
|
||||||
|
Width int `json:"width"`
|
||||||
|
Height int `json:"height"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
BgColor string `json:"bgColor"`
|
||||||
|
TextColor1 string `json:"textColor1"`
|
||||||
|
TextColor2 string `json:"textColor2"`
|
||||||
|
TextColor3 string `json:"textColor3"`
|
||||||
|
TextColor4 string `json:"textColor4"`
|
||||||
|
} `json:"artwork"`
|
||||||
|
GenreNames []string `json:"genreNames"`
|
||||||
|
IsCompilation bool `json:"isCompilation"`
|
||||||
|
IsComplete bool `json:"isComplete"`
|
||||||
|
IsMasteredForItunes bool `json:"isMasteredForItunes"`
|
||||||
|
IsPrerelease bool `json:"isPrerelease"`
|
||||||
|
IsSingle bool `json:"isSingle"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
PlayParams struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Kind string `json:"kind"`
|
||||||
|
} `json:"playParams"`
|
||||||
|
ReleaseDate string `json:"releaseDate"`
|
||||||
|
TrackCount int `json:"trackCount"`
|
||||||
|
Upc string `json:"upc"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
type AutoGenerated struct {
|
type AutoGenerated struct {
|
||||||
Data []struct {
|
Data []struct {
|
||||||
ID string `json:"id"`
|
ID string `json:"id"`
|
||||||
@ -374,6 +412,10 @@ type AutoGeneratedTrack struct {
|
|||||||
} `json:"attributes"`
|
} `json:"attributes"`
|
||||||
} `json:"data"`
|
} `json:"data"`
|
||||||
} `json:"artists"`
|
} `json:"artists"`
|
||||||
|
Albums struct {
|
||||||
|
Href string `json:"href"`
|
||||||
|
Data []AlbumData `json:"data"`
|
||||||
|
}
|
||||||
} `json:"relationships"`
|
} `json:"relationships"`
|
||||||
} `json:"data"`
|
} `json:"data"`
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user