diff --git a/downloader/downloader.go b/downloader/downloader.go index a91a7590c..803c15d56 100644 --- a/downloader/downloader.go +++ b/downloader/downloader.go @@ -44,7 +44,7 @@ func (data VideoData) printInfo() { func (data VideoData) urlSave( urlData URLData, refer, fileName string, bar *pb.ProgressBar, ) { - filePath := utils.FilePath(fileName, data.Ext) + filePath := utils.FilePath(fileName, data.Ext, false) fileSize := utils.FileSize(filePath) if fileSize == urlData.Size { fmt.Printf("%s: file already exists, skipping\n", filePath) @@ -95,7 +95,7 @@ func (data VideoData) Download(refer string) { bar.Start() if len(data.URLs) == 1 { // only one fragment - data.urlSave(data.URLs[0], refer, utils.FileName(data.Title), bar) + data.urlSave(data.URLs[0], refer, data.Title, bar) bar.Finish() } else { var wg sync.WaitGroup @@ -103,8 +103,8 @@ func (data VideoData) Download(refer string) { parts := []string{} for index, url := range data.URLs { wg.Add(1) - partFileName := fmt.Sprintf("%s[%d]", utils.FileName(data.Title), index) - partFilePath := utils.FilePath(partFileName, data.Ext) + partFileName := fmt.Sprintf("%s[%d]", data.Title, index) + partFilePath := utils.FilePath(partFileName, data.Ext, false) parts = append(parts, partFilePath) go func(url URLData, refer, fileName string, bar *pb.ProgressBar) { defer wg.Done() @@ -116,13 +116,13 @@ func (data VideoData) Download(refer string) { // merge // write ffmpeg input file list - mergeFile := utils.FileName(data.Title) + "-merge.txt" + mergeFile := data.Title + "-merge.txt" file, _ := os.Create(mergeFile) for _, part := range parts { file.Write([]byte(fmt.Sprintf("file '%s'\n", part))) } - filePath := utils.FilePath(data.Title, data.Ext) + filePath := utils.FilePath(data.Title, data.Ext, false) fmt.Printf("Merging video parts into %s\n", filePath) cmd := exec.Command( "ffmpeg", "-y", "-f", "concat", "-safe", "-1", diff --git a/extractors/bilibili.go b/extractors/bilibili.go index 34a028cfa..157eace8a 100644 --- a/extractors/bilibili.go +++ b/extractors/bilibili.go @@ -119,7 +119,7 @@ func Bilibili(url string) downloader.VideoData { } data := downloader.VideoData{ Site: "哔哩哔哩 bilibili.com", - Title: title, + Title: utils.FileName(title), URLs: urls, Ext: format, Size: size, diff --git a/extractors/douyin.go b/extractors/douyin.go index 8193f3609..6af5cfa09 100644 --- a/extractors/douyin.go +++ b/extractors/douyin.go @@ -36,7 +36,7 @@ func Douyin(url string) downloader.VideoData { } data := downloader.VideoData{ Site: "抖音 douyin.com", - Title: dataDict.Desc, + Title: utils.FileName(dataDict.Desc), Ext: "mp4", URLs: []downloader.URLData{urlData}, Size: size, diff --git a/utils/utils.go b/utils/utils.go index 61f65eb98..bb5496c69 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -42,7 +42,10 @@ func FileName(name string) string { } // FilePath gen valid filename -func FilePath(name, ext string) string { +func FilePath(name, ext string, escape bool) string { fileName := fmt.Sprintf("%s.%s", name, ext) - return FileName(fileName) + if escape { + fileName = FileName(fileName) + } + return fileName }