package main import ( "context" "log" "github.com/lrstanley/go-ytdlp" "github.com/gen2brain/beeep" ) const OUTPUT_DIR = "C:/Users/Administrator/ytdlpVideos" var dl = ytdlp.New(). // FormatSort("bestvideo[ext=mp4]+bestaudio[ext=m4a]"). FormatSort("res,ext:mp4:m4a"). Output("C:/Users/Administrator/ytdlpVideos/%(uploader)s/%(title)s.%(ext)s"). LimitRate("5M"). // HTTPChunkSize("20M"). MarkWatched(). SponsorblockMark("all"). RecodeVideo("mp4"). ConcurrentFragments(6) // func Download(event PBEvent, status chan error) { // _, err := dl.Run(context.TODO(), event.Record.Link) // if err != nil { // status <- err // return // } // log.Printf("Downloaded %s (%s)", event.Record.Id, event.Record.Link) // SetDownloaded(event) // } func DownloadURL(url string, status chan error) { log.Printf("Downloading %s", url) err := beeep.Beep(beeep.DefaultFreq, beeep.DefaultDuration) if err != nil { log.Printf("Failed beeping with %+v", err) } err = beeep.Alert("Download Started", url, "assets/information.png") if err != nil { log.Printf("Failed alerting with %+v", err) } _, err = dl.Run(context.TODO(), url) if err != nil { status <- err return } log.Printf("Downloaded %s", url) close(status) }