Merge pull request #88 from itouakirai/main

This commit is contained in:
ZHAAREY
2025-10-22 08:36:23 +08:00
committed by GitHub
3 changed files with 10 additions and 13 deletions

2
go.mod
View File

@@ -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
View File

@@ -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
View File

@@ -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
}