Switch to ytdlp raw because youtube fucked something again
This commit is contained in:
@@ -2,40 +2,29 @@ package downloaders
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
|
||||||
"github.com/gen2brain/beeep"
|
logger "git.site.quack-lab.dev/dave/cylogger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type YTDLPRawDownloader struct{}
|
type YTDLPRawDownloader struct{}
|
||||||
|
|
||||||
func (d *YTDLPRawDownloader) Download(url string) error {
|
func (d *YTDLPRawDownloader) Download(url string) error {
|
||||||
|
downloadlogger := logger.Default.WithPrefix(fmt.Sprintf("url=%q", url))
|
||||||
_, ongoing := ongoingDownloads[url]
|
_, ongoing := ongoingDownloads[url]
|
||||||
if ongoing {
|
if ongoing {
|
||||||
// return fmt.Errorf("Download %s is already ongoing", url)
|
// return fmt.Errorf("Download %s is already ongoing", url)
|
||||||
log.Printf("Download %s is already ongoing", url)
|
downloadlogger.Info("Download is already ongoing")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
ongoingDownloadsMutex.Lock()
|
ongoingDownloadsMutex.Lock()
|
||||||
ongoingDownloads[url] = struct{}{}
|
ongoingDownloads[url] = struct{}{}
|
||||||
ongoingDownloadsMutex.Unlock()
|
ongoingDownloadsMutex.Unlock()
|
||||||
|
|
||||||
log.Printf("YTDLPRaw downloading %s", url)
|
downloadlogger.Info("YTDLPRaw downloading")
|
||||||
|
|
||||||
go func() {
|
cmd := exec.Command("yt-dlp", "-o", "C:/Users/Administrator/ytdlpVideos/%(uploader)s/%(title)s.%(ext)s", "-f", "bestvideo[ext=mp4]+bestaudio[ext=m4a]", "-N", "12", "--sponsorblock-mark", "all", 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)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
cmd := exec.Command("yt-dlp", "-o", "C:/Users/Administrator/ytdlpVideos/%(title)s.%(ext)s", "-f", "bestvideo[ext=mp4]+bestaudio[ext=m4a]", "-N", "12", "--sponsorblock-mark", "all", url)
|
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
@@ -43,7 +32,7 @@ func (d *YTDLPRawDownloader) Download(url string) error {
|
|||||||
return fmt.Errorf("failed downloading %s with %+v", url, err)
|
return fmt.Errorf("failed downloading %s with %+v", url, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("Downloaded %s", url)
|
downloadlogger.Info("Downloaded")
|
||||||
ongoingDownloadsMutex.Lock()
|
ongoingDownloadsMutex.Lock()
|
||||||
delete(ongoingDownloads, url)
|
delete(ongoingDownloads, url)
|
||||||
ongoingDownloadsMutex.Unlock()
|
ongoingDownloadsMutex.Unlock()
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ import (
|
|||||||
"github.com/nsqio/go-nsq"
|
"github.com/nsqio/go-nsq"
|
||||||
)
|
)
|
||||||
|
|
||||||
// var downloader downloaders.Downloader = &downloaders.YTDLPRawDownloader{}
|
var downloader downloaders.Downloader = &downloaders.YTDLPRawDownloader{}
|
||||||
// var downloader downloaders.Downloader = &downloaders.KidaiDownloader{}
|
// var downloader downloaders.Downloader = &downloaders.KidaiDownloader{}
|
||||||
var downloader downloaders.Downloader = &downloaders.YTDLPLibDownloader{}
|
// var downloader downloaders.Downloader = &downloaders.YTDLPLibDownloader{}
|
||||||
|
|
||||||
type DLHandler struct{}
|
type DLHandler struct{}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user