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