diff --git a/downloader/download_downloadr.go b/downloader/download_downloadr.go index f982b5a..b8577eb 100644 --- a/downloader/download_downloadr.go +++ b/downloader/download_downloadr.go @@ -44,9 +44,8 @@ func DownloadR(url string) error { // This works fine, now I have to figure out how to plug -m and -q into this shit below downloader := ytd.Downloader{ OutputDir: OUTPUT_DIR, - Client: client, + Client: client, } - videoTitle := video.Title videoAuthor := video.Author videoTitle = strings.ReplaceAll(videoTitle, " ", "-") @@ -56,11 +55,20 @@ func DownloadR(url string) error { videoAuthor = strings.ReplaceAll(videoAuthor, "&", "and") videoAuthor = strings.ReplaceAll(videoAuthor, "?", "") + videoFileRoot := filepath.Join(OUTPUT_DIR, videoAuthor) err = os.MkdirAll(videoFileRoot, 0755) if err != nil { return fmt.Errorf("failed creating directory %s with %+v", videoFileRoot, err) } + + fullVideoPath := filepath.Join(OUTPUT_DIR, videoAuthor, videoTitle+".mp4") + _, err = os.Open(fullVideoPath) + if err == nil { + log.Printf("File %s already exists, skipping download", fullVideoPath) + return nil + } + videoFile := filepath.Join(videoAuthor, videoTitle+".mp4") err = downloader.DownloadComposite(context.Background(), videoFile, video, "hd", "mp4", "") if err != nil { @@ -73,3 +81,4 @@ func DownloadR(url string) error { ongoingDownloadsMutex.Unlock() return nil } +