From 9b41f9114c1e45fea0ebfad6ef2a4253757177fd Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Tue, 5 Nov 2024 15:33:21 +0100 Subject: [PATCH] Improve deletification It was meant to run once and not as a service... So it's bursting at the seams But it will work I will make it work --- .../kkdai/youtube/v2/downloader/downloader.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/downloader/vendor/github.com/kkdai/youtube/v2/downloader/downloader.go b/downloader/vendor/github.com/kkdai/youtube/v2/downloader/downloader.go index b2a61dc..04dc834 100644 --- a/downloader/vendor/github.com/kkdai/youtube/v2/downloader/downloader.go +++ b/downloader/vendor/github.com/kkdai/youtube/v2/downloader/downloader.go @@ -4,6 +4,7 @@ import ( "context" "errors" "io" + "log/slog" "os" "os/exec" "path/filepath" @@ -85,26 +86,28 @@ func (dl *Downloader) DownloadComposite(ctx context.Context, outputFile string, if err != nil { return err } - defer os.Remove(videoFile.Name()) + defer Delete(videoFile.Name(), log) // Create temporary audio file audioFile, err := os.CreateTemp(outputDir, "youtube_*.m4a") if err != nil { return err } - defer os.Remove(audioFile.Name()) + defer Delete(audioFile.Name(), log) log.Debug("Downloading video file...") err = dl.videoDLWorker(ctx, videoFile, v, videoFormat) if err != nil { return err } + videoFile.Close() log.Debug("Downloading audio file...") err = dl.videoDLWorker(ctx, audioFile, v, audioFormat) if err != nil { return err } + audioFile.Close() //nolint:gosec ffmpegVersionCmd := exec.Command("ffmpeg", "-y", @@ -122,6 +125,13 @@ func (dl *Downloader) DownloadComposite(ctx context.Context, outputFile string, return ffmpegVersionCmd.Run() } +func Delete(path string, log *slog.Logger) { + err := os.Remove(path) + if err != nil { + log.Error("Failed deleting file", "path", path, "error", err) + } +} + func getVideoAudioFormats(v *youtube.Video, quality string, mimetype, language string) (*youtube.Format, *youtube.Format, error) { var videoFormats, audioFormats youtube.FormatList