mirror of
https://github.com/zhaarey/apple-music-downloader.git
synced 2025-10-23 15:11:05 +00:00
Merge pull request #88 from itouakirai/main
This commit is contained in:
2
go.mod
2
go.mod
@@ -40,6 +40,6 @@ require (
|
||||
github.com/go-resty/resty/v2 v2.16.5
|
||||
github.com/itouakirai/mp4ff v0.0.0-20250930132656-98812935a1c7
|
||||
github.com/olekukonko/tablewriter v0.0.5
|
||||
github.com/zhaarey/go-mp4tag v0.0.0-20250210094042-22578afc09bf
|
||||
github.com/zhaarey/go-mp4tag v0.0.0-20251021234435-2c70f6b1bf76
|
||||
gopkg.in/yaml.v2 v2.2.8
|
||||
)
|
||||
|
||||
6
go.sum
6
go.sum
@@ -27,8 +27,6 @@ github.com/grafov/m3u8 v0.11.1 h1:igZ7EBIB2IAsPPazKwRKdbhxcoBKO3lO1UY57PZDeNA=
|
||||
github.com/grafov/m3u8 v0.11.1/go.mod h1:nqzOkfBiZJENr52zTVd/Dcl03yzphIMbJqkXGu+u080=
|
||||
github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog=
|
||||
github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68=
|
||||
github.com/itouakirai/mp4ff v0.0.0-20250929054714-77e796d393ee h1:IIMI9QdTGdveHtSy/d1NWLVd42bw4OXBINlwtdgIS9s=
|
||||
github.com/itouakirai/mp4ff v0.0.0-20250929054714-77e796d393ee/go.mod h1:epcaTcHNf0fgnK8d2MP/gPQNji50kvZa9ZxzX06UOoA=
|
||||
github.com/itouakirai/mp4ff v0.0.0-20250930132656-98812935a1c7 h1:KhMNPs/FW9fsiei6qD8h07ArJqYjvpIjk1zqeyv06Xw=
|
||||
github.com/itouakirai/mp4ff v0.0.0-20250930132656-98812935a1c7/go.mod h1:epcaTcHNf0fgnK8d2MP/gPQNji50kvZa9ZxzX06UOoA=
|
||||
github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213/go.mod h1:vNUNkEQ1e29fT/6vq2aBdFsgNPmy8qMdSay1npru+Sw=
|
||||
@@ -71,8 +69,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/zhaarey/go-mp4tag v0.0.0-20250210094042-22578afc09bf h1:WzZoh9wvukQu2We8dw/bFmLfb5XsC5bGGU/Izhd/UOo=
|
||||
github.com/zhaarey/go-mp4tag v0.0.0-20250210094042-22578afc09bf/go.mod h1:cqL6le//aG0AE1/VE1um2m+8dKa8te/WhHWqzrHMDys=
|
||||
github.com/zhaarey/go-mp4tag v0.0.0-20251021234435-2c70f6b1bf76 h1:ON+3W/tNJ6Hujez1ITh9cy3RpFUfLg3NKuKb2PJBg8Q=
|
||||
github.com/zhaarey/go-mp4tag v0.0.0-20251021234435-2c70f6b1bf76/go.mod h1:cqL6le//aG0AE1/VE1um2m+8dKa8te/WhHWqzrHMDys=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
|
||||
15
main.go
15
main.go
@@ -872,7 +872,6 @@ func ripTrack(track *task.Track, token string, mediaUserToken string) {
|
||||
convertedPath = strings.TrimSuffix(trackPath, filepath.Ext(trackPath)) + "." + strings.ToLower(Config.ConvertFormat)
|
||||
considerConverted = true
|
||||
}
|
||||
|
||||
//get lrc
|
||||
var lrc string = ""
|
||||
if Config.EmbedLrc || Config.SaveLrcFile {
|
||||
@@ -944,9 +943,10 @@ func ripTrack(track *task.Track, token string, mediaUserToken string) {
|
||||
return
|
||||
}
|
||||
}
|
||||
//这里利用MP4box将fmp4转化为mp4,并添加ilst box与cover,方便后面的mp4tag添加更多自定义标签
|
||||
tags := []string{
|
||||
"tool=",
|
||||
fmt.Sprintf("artist=%s", track.Resp.Attributes.ArtistName),
|
||||
"artist=AppleMusic",
|
||||
}
|
||||
if Config.EmbedCover {
|
||||
if (strings.Contains(track.PreID, "pl.") || strings.Contains(track.PreID, "ra.")) && Config.DlAlbumcoverForPlaylist {
|
||||
@@ -1336,8 +1336,8 @@ func ripAlbum(albumId string, token string, storefront string, mediaUserToken st
|
||||
os.MkdirAll(albumFolderPath, os.ModePerm)
|
||||
album.SaveName = albumFolderName
|
||||
fmt.Println(albumFolderName)
|
||||
if Config.SaveArtistCover {
|
||||
if len(meta.Data[0].Relationships.Artists.Data) > 0 {
|
||||
if Config.SaveArtistCover && len(meta.Data[0].Relationships.Artists.Data) > 0{
|
||||
if meta.Data[0].Relationships.Artists.Data[0].Attributes.Artwork.Url != "" {
|
||||
_, err = writeCover(singerFolder, "folder", meta.Data[0].Relationships.Artists.Data[0].Attributes.Artwork.Url)
|
||||
if err != nil {
|
||||
fmt.Println("Failed to write artist cover.")
|
||||
@@ -2003,9 +2003,11 @@ func mvDownloader(adamID string, saveDir string, token string, storefront string
|
||||
videom3u8url, _ := extractVideo(mvm3u8url)
|
||||
videokeyAndUrls, _ := runv3.Run(adamID, videom3u8url, token, mediaUserToken, true, "")
|
||||
_ = runv3.ExtMvData(videokeyAndUrls, vidPath)
|
||||
defer os.Remove(vidPath)
|
||||
audiom3u8url, _ := extractMvAudio(mvm3u8url)
|
||||
audiokeyAndUrls, _ := runv3.Run(adamID, audiom3u8url, token, mediaUserToken, true, "")
|
||||
_ = runv3.ExtMvData(audiokeyAndUrls, audPath)
|
||||
defer os.Remove(audPath)
|
||||
|
||||
tags := []string{
|
||||
"tool=",
|
||||
@@ -2070,6 +2072,7 @@ func mvDownloader(adamID string, saveDir string, token string, storefront string
|
||||
tags = append(tags, fmt.Sprintf("cover=%s", covPath))
|
||||
}
|
||||
}
|
||||
defer os.Remove(covPath)
|
||||
|
||||
tagsString := strings.Join(tags, ":")
|
||||
muxCmd := exec.Command("MP4Box", "-itags", tagsString, "-quiet", "-add", vidPath, "-add", audPath, "-keep-utc", "-new", mvOutPath)
|
||||
@@ -2079,10 +2082,6 @@ func mvDownloader(adamID string, saveDir string, token string, storefront string
|
||||
return err
|
||||
}
|
||||
fmt.Printf("\rMV Remuxed. \n")
|
||||
defer os.Remove(vidPath)
|
||||
defer os.Remove(audPath)
|
||||
defer os.Remove(covPath)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user