add select.go with m3u8 input

pull/17/head
zhaarey 5 months ago
parent bd40e9f0a7
commit c25feacb50
  1. 1
      README.md
  2. 16
      main_select.go

@ -6,6 +6,7 @@
3. 运行结束后显示总体完成情况 3. 运行结束后显示总体完成情况
4. 自动内嵌封面和LRC歌词(需要media-user-token,获取方式看最后的说明) 4. 自动内嵌封面和LRC歌词(需要media-user-token,获取方式看最后的说明)
5. 自动构建 可以到 [Actions](https://github.com/zhaarey/apple-music-alac-atmos-downloader/actions) 页面下载最新自动构建版本 可以直接`main.exe url` 5. 自动构建 可以到 [Actions](https://github.com/zhaarey/apple-music-alac-atmos-downloader/actions) 页面下载最新自动构建版本 可以直接`main.exe url`
6. main_select 支持手动填写m3u8,输入#号

@ -1147,6 +1147,11 @@ func rip(albumId string, token string, storefront string, userToken string) erro
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
manually := false
if strings.Contains(input, "#") {
input = strings.ReplaceAll(input, "#", "")
manually = true
}
input = strings.TrimSpace(input) input = strings.TrimSpace(input)
inputs := strings.Fields(input) inputs := strings.Fields(input)
for _, str := range inputs { for _, str := range inputs {
@ -1178,6 +1183,7 @@ func rip(albumId string, token string, storefront string, userToken string) erro
continue continue
} }
filename := fmt.Sprintf("%02d. %s.m4a", trackNum, forbiddenNames.ReplaceAllString(track.Attributes.Name, "_")) filename := fmt.Sprintf("%02d. %s.m4a", trackNum, forbiddenNames.ReplaceAllString(track.Attributes.Name, "_"))
fmt.Println(filename)
lrcFilename := fmt.Sprintf("%02d. %s.lrc", trackNum, forbiddenNames.ReplaceAllString(track.Attributes.Name, "_")) lrcFilename := fmt.Sprintf("%02d. %s.lrc", trackNum, forbiddenNames.ReplaceAllString(track.Attributes.Name, "_"))
trackPath := filepath.Join(sanAlbumFolder, filename) trackPath := filepath.Join(sanAlbumFolder, filename)
var lrc string = "" var lrc string = ""
@ -1210,6 +1216,16 @@ func rip(albumId string, token string, storefront string, userToken string) erro
fmt.Println("Track already exists locally.") fmt.Println("Track already exists locally.")
continue continue
} }
if manually {
fmt.Print("m3u8: ")
reader := bufio.NewReader(os.Stdin)
m3u8_url, err := reader.ReadString('\n')
if err != nil {
fmt.Println(err)
}
m3u8_url = strings.TrimSpace(m3u8_url)
manifest.Attributes.ExtendedAssetUrls.EnhancedHls=m3u8_url
}
trackUrl, keys, err := extractMedia(manifest.Attributes.ExtendedAssetUrls.EnhancedHls) trackUrl, keys, err := extractMedia(manifest.Attributes.ExtendedAssetUrls.EnhancedHls)
if err != nil { if err != nil {
fmt.Println("Failed to extract info from manifest.\n", err) fmt.Println("Failed to extract info from manifest.\n", err)

Loading…
Cancel
Save