Closed sebma closed 5 years ago
Does any option in mpv at all concatenate? Because I don't think concatenation was ever intended.
EDIT: glsl-shader I suppose? But if ytdl-raw-options is going to concatenate there still should be a way to reset it to an empty list in a profile
Only "-append" options do so. And with those there exists a whole set of complementary operations to manipulate the list of options to be created. Other options don't concatenate afaik and I'm not aware of this being normal behavior anywhere else.
@CounterPillow You're right, other options don't need concatenation. I think this is the only one which does :
$ man mpv | egrep -- "^\s+--[^=]+options="
--ytdl-raw-options=<key>=<value>[,<key>=<value>[,...]]
because it has an s
at the end of it's name (just kidding)
Anyway, I guess, maybe this a more of a new feature request than a real issue, do you agree ?
@Argon- Maybe, you can create these options :
--ytdl-raw-options-apend
to append a new item to the list of --ytdl-raw-options
--ytdl-raw-options-clr
to reset it to an empty list just like CounterPillow suggestedytdl-raw-options is a key/value list option. --ytdl-raw-options-append
is already a thing. It's not in the man page, but --list-options
shows it. For whatever reason, key/value lists don't get -clr, though. (String lists do.)
@qmega What do you mean when you say
--ytdl-raw-options-append
is already a thing
?
I tried and run the following command but mpv
says "Error parsing option ytdl-raw-options-apend (option not found)" :
$ mpv --no-config --ytdl-raw-options='sub-lang="en,eng,enUS,en-US,fr"' --ytdl-raw-options-apend='abort-on-error=' https://www.youtube.com/playlist?list=PLRv5TPGK6KtwWGOvqJJ_9t0c7_wwhxYB1
Error parsing option ytdl-raw-options-apend (option not found)
Setting commandline option --ytdl-raw-options-apend=abort-on-error= failed.
Exiting... (Fatal error)
$ echo $?
1
Well, that's because it should be append, instead of apend.
append
@zc62 Oh I see :)
Now, in my [english]
profile in my mpv.conf
, I have this :
profile=fsd,english
[english]
alang=en,fr
ytdl-raw-options='sub-lang="en,eng,enUS,en-US,fr"'
ytdl-raw-options-append='abort-on-error='
and it works perfectly :
$ mpv https://www.youtube.com/playlist?list=PLRv5TPGK6KtwWGOvqJJ_9t0c7_wwhxYB1
Playing: https://www.youtube.com/playlist?list=PLRv5TPGK6KtwWGOvqJJ_9t0c7_wwhxYB1
Playing: https://youtu.be/g2TyxiEnsfw
[ytdl_hook] ERROR: This video contains content from LakewoodChurch, who has blocked it on copyright grounds.
[ytdl_hook] youtube-dl failed: unexpected error ocurred
Failed to recognize file format.
Playing: https://youtu.be/yO7NBfpaobY
(+) Video --vid=1 (*) (h264 854x480 29.970fps)
(+) Audio --aid=1 --alang=eng (*) 'DASH audio' (opus 2ch 48000Hz) (external)
Subs --sid=1 --slang=en 'vtt' (webvtt) (external)
Subs --sid=2 --slang=fr 'vtt' (webvtt) (external)
AO: [pulse] 48000Hz stereo 2ch float
VO: [gpu] 854x480 yuv420p
Fontconfig warning: ignoring C.UTF-8: not a valid language tag
AV: 00:00:02 / 01:58:01 (0%) A-V: 0.000 Cache: 34s+1MB
Saving state.
But if I try this it does not work :
ytdl-raw-options='abort-on-error='
profile=fsd,english
[english]
alang=en,fr
ytdl-raw-options-append='sub-lang="en,eng,enUS,en-US,fr"'
I wonder why the subtitles are not loaded :
$ mpv https://www.youtube.com/playlist?list=PLRv5TPGK6KtwWGOvqJJ_9t0c7_wwhxYB1
Playing: https://www.youtube.com/playlist?list=PLRv5TPGK6KtwWGOvqJJ_9t0c7_wwhxYB1
Playing: https://youtu.be/g2TyxiEnsfw
[ytdl_hook] ERROR: This video contains content from LakewoodChurch, who has blocked it on copyright grounds.
[ytdl_hook] youtube-dl failed: unexpected error ocurred
Failed to recognize file format.
Playing: https://youtu.be/yO7NBfpaobY
(+) Video --vid=1 (*) (h264 854x480 29.970fps)
(+) Audio --aid=1 --alang=eng (*) 'DASH audio' (opus 2ch 48000Hz) (external)
AO: [pulse] 48000Hz stereo 2ch float
VO: [gpu] 854x480 yuv420p
Fontconfig warning: ignoring C.UTF-8: not a valid language tag
AV: 00:00:04 / 01:58:01 (0%) A-V: 0.000 Cache: 38s+2MB
Saving state.
But then if I change my config to :
ytdl-raw-options='abort-on-error='
profile=fsd,english
[english]
alang=en,fr
ytdl-raw-options-add='sub-lang="en,eng,enUS,en-US,fr"'
then it works back again.
Do you have any idea why ?
Run with --msg-level=ytdl_hook=debug
. Look for a line with [ytdl_hook] Running: youtube-dl (...)
.
Check which options are working or not.
Works for me, both using -append and -add.
@wiiaboo My pb. seems to be solved by replacing ytdl-raw-options-append
by ytdl-raw-options-add
in my mpv.conf
.
Now I have this and it works fine :
ytdl-raw-options='abort-on-error='
profile=fsd,english
[english]
alang=en,fr
ytdl-raw-options-add='sub-lang="en,eng,enUS,en-US,fr"'
mpv version and platform
mpv version : v2:0.29.1+git2~trusty platform : Ubuntu Linux
Reproduction steps
I have multiple
ytdl-raw-options=
lines in mympv.conf
but it seemsmpv
does not concatenate them, it only acknowledges the last one.I have the
ytdl-raw-options='abort-on-error='
in the default mpv options and I useytdl-raw-options='sub-lang="en,eng,enUS,en-US,fr"'
to only download the english and french subtitles in my[english]
mpv profile.But, as you can see in the following example, the first
--ytdl-raw-options='sub-lang="en,eng,enUS,en-US,fr"'
is ignored and ALL the 104 subtitles are downloaded (which takes quite some time) :Expected behavior
The
ytdl-raw-options=
calls (or lines in thempv.conf
) are concatenated.Actual behavior
The
ytdl-raw-options=
calls (or lines in thempv.conf
) are NOT concatenated and only the lastytdl-raw-options=
is acknowledged.Log file
Here is the
mpv
log : mpv_issue#6788.txt