Compare commits

...

3 Commits

Author SHA1 Message Date
0a71ef412a Switch to ytdlp raw because youtube fucked something again 2025-10-23 23:52:09 +02:00
999846335b Update url 2025-10-23 23:43:30 +02:00
f867606a6f Use tv player for more HD shit 2025-10-07 10:29:49 +02:00
4 changed files with 11 additions and 22 deletions

View File

@@ -11,7 +11,7 @@ import (
"sync"
)
const URL = `https://nsq.site.quack-lab.dev/pub?topic=ytdqueue`
const URL = `https://nsq-http.site.quack-lab.dev/pub?topic=ytdqueue`
type Item struct {
Link string `json:"link"`

View File

@@ -15,11 +15,11 @@ func init() {
var dl = ytdlp.New().
// FormatSort("bestvideo[ext=mp4]+bestaudio[ext=m4a]").
FormatSort("res,ext:mp4:m4a").
FormatSort("best,ext:mp4:m4a").
Output("C:/Users/Administrator/ytdlpVideos/%(uploader)s/%(title)s.%(ext)s").
LimitRate(fmt.Sprintf("%dM", 150/DOWNLOAD_WORKERS)).
// HTTPChunkSize("20M").
ExtractorArgs("youtube:player_client=android").
ExtractorArgs("youtube:player_client=tv").
MarkWatched().
SponsorblockMark("all").
RecodeVideo("mp4").

View File

@@ -2,40 +2,29 @@ package downloaders
import (
"fmt"
"log"
"os"
"os/exec"
"github.com/gen2brain/beeep"
logger "git.site.quack-lab.dev/dave/cylogger"
)
type YTDLPRawDownloader struct{}
func (d *YTDLPRawDownloader) Download(url string) error {
downloadlogger := logger.Default.WithPrefix(fmt.Sprintf("url=%q", url))
_, ongoing := ongoingDownloads[url]
if ongoing {
// 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
}
ongoingDownloadsMutex.Lock()
ongoingDownloads[url] = struct{}{}
ongoingDownloadsMutex.Unlock()
log.Printf("YTDLPRaw downloading %s", url)
downloadlogger.Info("YTDLPRaw downloading")
go func() {
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 := 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)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
@@ -43,7 +32,7 @@ func (d *YTDLPRawDownloader) Download(url string) error {
return fmt.Errorf("failed downloading %s with %+v", url, err)
}
log.Printf("Downloaded %s", url)
downloadlogger.Info("Downloaded")
ongoingDownloadsMutex.Lock()
delete(ongoingDownloads, url)
ongoingDownloadsMutex.Unlock()

View File

@@ -15,9 +15,9 @@ import (
"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.YTDLPLibDownloader{}
// var downloader downloaders.Downloader = &downloaders.YTDLPLibDownloader{}
type DLHandler struct{}