refactor: rename and rely on yt-dlp defauls more
Some checks are pending
build / build (push) Waiting to run

This commit is contained in:
Viktor Varland 2025-09-09 09:05:47 +02:00
parent e236b4d043
commit 49b8dd4dd4
No known key found for this signature in database
GPG key ID: 940DFD5EADD1E94A
5 changed files with 44 additions and 40 deletions

View file

@ -54,7 +54,8 @@ COPY <<-EOT /data/config.json
"youtube": { "youtube": {
"verbose": false, "verbose": false,
"cmd": "/home/subsyt/.local/bin/yt-dlp", "cmd": "/home/subsyt/.local/bin/yt-dlp",
"quality": "res:1080", "format": "",
"format_sort": "",
"output_path_template": "s%(upload_date>%Y)s/%(channel)s.s%(upload_date>%Y)Se%(upload_date>%m%d)S.%(title)s.%(id)s.%(ext)s", "output_path_template": "s%(upload_date>%Y)s/%(channel)s.s%(upload_date>%Y)Se%(upload_date>%m%d)S.%(title)s.%(id)s.%(ext)s",
"url": "https://www.youtube.com", "url": "https://www.youtube.com",
"throttle": 5, "throttle": 5,
@ -62,7 +63,7 @@ COPY <<-EOT /data/config.json
"opml_file": "/data/opml.xml", "opml_file": "/data/opml.xml",
"po_token": "", "po_token": "",
"bgutil_server": "http://bgutil:4416", "bgutil_server": "http://bgutil:4416",
"player_client": "mweb" "player_client": ""
} }
} }
} }

View file

@ -78,7 +78,8 @@ Full `config.json`:
"youtube": { "youtube": {
"verbose": false, "verbose": false,
"cmd": "./yt-dlp", "cmd": "./yt-dlp",
"quality": "res:1080", "format": "best",
"format_sort": "res:1080",
"output_path_template": "s%(upload_date>%Y)s/%(channel)s.s%(upload_date>%Y)Se%(upload_date>%m%d)S.%(title)s.%(id)s.%(ext)s", "output_path_template": "s%(upload_date>%Y)s/%(channel)s.s%(upload_date>%Y)Se%(upload_date>%m%d)S.%(title)s.%(id)s.%(ext)s",
"url": "https://www.youtube.com", "url": "https://www.youtube.com",
"throttle": 5, "throttle": 5,

View file

@ -12,12 +12,13 @@ type Provider struct {
Cmd string Cmd string
Cookies_file string Cookies_file string
Opml_file string Opml_file string
Quality string Format string
Format_sort string
Output_path_template string Output_path_template string
Po_token string Po_token string
Verbose bool Verbose bool
Bgutil_server string Bgutil_server string
Player_client string Player_client string
} }
type Config struct { type Config struct {

View file

@ -18,10 +18,10 @@ import (
) )
type Download struct { type Download struct {
Url string Url string
OutDir string OutDir string
Name string Name string
DryRun bool DryRun bool
Metadata bool Metadata bool
} }
@ -58,7 +58,7 @@ func Youtube(d Download, p config.Provider) {
if d.Metadata == true { if d.Metadata == true {
log.Println("Downloading metadata") log.Println("Downloading metadata")
mArgs := []string{ mArgs := []string{
"--skip-download", "--skip-download",
"--no-overwrites", "--no-overwrites",
"--playlist-items", "0:0:1", "--playlist-items", "0:0:1",
} }
@ -85,10 +85,12 @@ func Youtube(d Download, p config.Provider) {
} }
args = append(args, dArgs...) args = append(args, dArgs...)
if p.Quality != "" { if p.Format != "" {
args = append(args, "--format-sort", p.Quality) args = append(args, "--format", p.Format)
} else { }
args = append(args, "--format-sort", "res:1080")
if p.Format_sort != "" {
args = append(args, "--format-sort", p.Format_sort)
} }
} }

View file

@ -5,25 +5,25 @@ import (
) )
type Feed struct { type Feed struct {
XMLName xml.Name `xml:"feed"` XMLName xml.Name `xml:"feed"`
Id string `xml:"id"` Id string `xml:"id"`
ChannelId string `xml:"yt:channelId"` ChannelId string `xml:"yt:channelId"`
Title string `xml:"title"` Title string `xml:"title"`
Published string `xml:"published"` Published string `xml:"published"`
Links []Link `xml:"link"` Links []Link `xml:"link"`
Author Author `xml:"author"` Author Author `xml:"author"`
Entries []Entry `xml:"entry"` Entries []Entry `xml:"entry"`
} }
type Link struct { type Link struct {
Rel string `xml:"rel,attr"` Rel string `xml:"rel,attr"`
Href string `xml:"href,attr"` Href string `xml:"href,attr"`
} }
type Author struct { type Author struct {
XMLName xml.Name `xml:"author"` XMLName xml.Name `xml:"author"`
Name string `xml:"name"` Name string `xml:"name"`
Uri string `xml:"uri"` Uri string `xml:"uri"`
} }
type MediaContent struct { type MediaContent struct {
@ -56,27 +56,26 @@ type MediaCommunity struct {
} }
type MediaGroup struct { type MediaGroup struct {
Title string `xml:"title"` Title string `xml:"title"`
Content MediaContent `xml:"content"` Content MediaContent `xml:"content"`
Thumbnail MediaThumbnail `xml:"thumbnail"` Thumbnail MediaThumbnail `xml:"thumbnail"`
Description string `xml:"description"` Description string `xml:"description"`
Community MediaCommunity `xml:"community"` Community MediaCommunity `xml:"community"`
} }
type Entry struct { type Entry struct {
XMLName xml.Name `xml:"entry"` XMLName xml.Name `xml:"entry"`
Title string `xml:"title"` Title string `xml:"title"`
Id string `xml:"id"` Id string `xml:"id"`
VideoId string `xml:"videoId"` VideoId string `xml:"videoId"`
ChannelId string `xml:"channelId"` ChannelId string `xml:"channelId"`
Link Link `xml:"link"` Link Link `xml:"link"`
Author Author `xml:"author"` Author Author `xml:"author"`
Published string `xml:"published"` Published string `xml:"published"`
Updated string `xml:"updated"` Updated string `xml:"updated"`
MediaGroup MediaGroup `xml:"group"` MediaGroup MediaGroup `xml:"group"`
} }
func RssLoad(data []byte) (Feed, error) { func RssLoad(data []byte) (Feed, error) {
feed := Feed{} feed := Feed{}