From 35e56578854255d07a5ba2425570909cf6fa7b93 Mon Sep 17 00:00:00 2001 From: zhaarey <157944548+zhaarey@users.noreply.github.com> Date: Tue, 30 Apr 2024 21:05:21 +0800 Subject: [PATCH] add find m3u8 from txt --- README.md | 2 +- main_select.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ab508f5..ceb98b2 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ 3. 运行结束后显示总体完成情况 4. 自动内嵌封面和LRC歌词(需要media-user-token,获取方式看最后的说明) 5. 自动构建 可以到 [Actions](https://github.com/zhaarey/apple-music-alac-atmos-downloader/actions) 页面下载最新自动构建版本 可以直接`main.exe url` -6. main_select 支持手动填写m3u8,输入#号 +6. main_select 支持手动填写m3u8,输入#号,比如#1 #2,支持txt读取m3u8,输入txt文件名 diff --git a/main_select.go b/main_select.go index 5d45f58..6358c24 100644 --- a/main_select.go +++ b/main_select.go @@ -1148,6 +1148,18 @@ func rip(albumId string, token string, storefront string, userToken string) erro fmt.Println(err) } manually := false + manually_txt := false + m3u8_txt := "" + if strings.Contains(input, "txt") { + m3u8_txt= strings.TrimSpace(input) + fmt.Print(m3u8_txt) + strArr := make([]string, len(arr)) + for i, num := range arr { + strArr[i] = strconv.Itoa(num) + } + input = strings.Join(strArr, " ") + manually_txt = true + } if strings.Contains(input, "#") { input = strings.ReplaceAll(input, "#", "") manually = true @@ -1216,6 +1228,26 @@ func rip(albumId string, token string, storefront string, userToken string) erro fmt.Println("Track already exists locally.") continue } + if manually_txt { + file, err := os.Open(m3u8_txt) + if err != nil { + fmt.Println("cant open txt:", err) + } + defer file.Close() + scanner := bufio.NewScanner(file) + for scanner.Scan() { + line := scanner.Text() + if strings.HasPrefix(line, track.ID) { + parts := strings.SplitN(line, ",", 2) + if len(parts) == 2 { + manifest.Attributes.ExtendedAssetUrls.EnhancedHls=parts[1] + } + } + } + if err := scanner.Err(); err != nil { + fmt.Println(err) + } + } if manually { fmt.Print("m3u8: ") reader := bufio.NewReader(os.Stdin)