diff --git a/config.yaml b/config.yaml index 5391e69..ea0fc37 100644 --- a/config.yaml +++ b/config.yaml @@ -1,8 +1,9 @@ media-user-token: "your-media-user-token" #If you need to obtain the lyrics, need to change it authorization-token: "your-authorization-token" #You don't need to change it; it can automatically obtain token +language: "" #supportedLanguage by each storefront --> https://gist.github.com/itouakirai/c8ba9df9dc65bd300094103b058731d0 lrc-type: "lyrics" #lyrics or syllable-lyrics lrc-format: "lrc" #lrc or ttml -embed-lrc: true +embed-lrc: true #Unable to embed ttml lyrics save-lrc-file: false save-artist-cover: false save-animated-artwork: false # If enabled, requires ffmpeg diff --git a/main.go b/main.go index 0440692..9b9ea4e 100644 --- a/main.go +++ b/main.go @@ -51,6 +51,7 @@ var ( type Config struct { MediaUserToken string `yaml:"media-user-token"` AuthorizationToken string `yaml:"authorization-token"` + Language string `yaml:"language"` SaveLrcFile bool `yaml:"save-lrc-file"` LrcType string `yaml:"lrc-type"` LrcFormat string `yaml:"lrc-format"` @@ -1119,6 +1120,8 @@ func getUrlArtistName(artistUrl string, token string) (string, error) { req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", token)) req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36") req.Header.Set("Origin", "https://music.apple.com") + query := url.Values{} + query.Set("l", config.Language) do, err := http.DefaultClient.Do(req) if err != nil { return "", err @@ -1143,7 +1146,7 @@ func checkArtist(artistUrl string, token string) ([]string, error) { var urls []string var options []string for { - req, err := http.NewRequest("GET", fmt.Sprintf("https://amp-api.music.apple.com/v1/catalog/%s/artists/%s/albums?limit=100&offset=%d", storefront, artistId, Num), nil) + req, err := http.NewRequest("GET", fmt.Sprintf("https://amp-api.music.apple.com/v1/catalog/%s/artists/%s/albums?limit=100&offset=%d&l=%s", storefront, artistId, Num, config.Language), nil) if err != nil { return nil, err } @@ -1263,7 +1266,7 @@ func getMeta(albumId string, token string, storefront string) (*AutoGenerated, e query.Set("fields[albums:albums]", "artistName,artwork,name,releaseDate,url") query.Set("fields[record-labels]", "name") query.Set("extend", "editorialVideo") - // query.Set("l", "en-gb") + query.Set("l", config.Language) req.URL.RawQuery = query.Encode() do, err := http.DefaultClient.Do(req) if err != nil { @@ -1285,7 +1288,7 @@ func getMeta(albumId string, token string, storefront string) (*AutoGenerated, e for { page = page + 100 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", storefront, mtype, albumId, pageStr), nil) + 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 { return nil, err } @@ -1726,9 +1729,7 @@ func rip(albumId string, token string, storefront string, userToken string) erro if err != nil { fmt.Printf("Failed to write lyrics") } - if !config.EmbedLrc { - lrc = "" - } + lrc = "" } } else { lrc, err = conventTTMLToLRC(ttml) @@ -2599,6 +2600,7 @@ func getInfoFromAdam(adamId string, token string, storefront string) (*SongData, query := url.Values{} query.Set("extend", "extendedAssetUrls") query.Set("include", "albums") + query.Set("l", config.Language) request.URL.RawQuery = query.Encode() request.Header.Set("Authorization", fmt.Sprintf("Bearer %s", token))