mpvnet-player / mpv.net

🎞 mpv.net is a media player for Windows with a modern GUI.
GNU General Public License v2.0
3.33k stars 160 forks source link

Option for adding resolution selection for Youtube #180

Open OldNero opened 4 years ago

OldNero commented 4 years ago

Is your feature request related to a problem? Please describe. Currently can't change video resolution for youtube, it automatically selects the highest resolution possible (i looked for vid resolution but haven't found any).

Describe the solution you'd like A way to select a default resolution or an automatically selected resolution based on monitor resolution.

Describe alternatives you've considered Maybe allow us to use our own installation of (youtube-dl) or maybe a Lua script (i tried many but to no avail).

Additional context Thank you for the hard work :)

stax76 commented 4 years ago

It's probably possible to config this somehow via mpv.conf.

I would only investigate the issue if it gets requested frequently.

Witchilich commented 4 years ago

https://github.com/jgreco/mpv-youtube-quality In input.conf f script-binding quality-menu #menu: Video > Quality Menu (URL) In youtube-quality.conf

fetch_formats=no
quality_strings=[ {"Best" : "(bestvideo[height>2160][vcodec^=av01]/bestvideo[height>2160][vcodec=vp9]/bestvideo[height>1440][vcodec^=av01]/bestvideo[height>1440][vcodec^=vp9][fps>30]/bestvideo[height>1440][vcodec^=vp9]/bestvideo[height>1080][vcodec^=av01]/bestvideo[height>1080][vcodec^=vp9][fps>30]/bestvideo[height>1080][vcodec^=vp9]/bestvideo[height>720][vcodec^=av01]/bestvideo[height>720][vcodec^=vp9][fps>30]/bestvideo[height>720][vcodec^=vp9]/bestvideo[height>240][vcodec^=av01]/bestvideo[vcodec^=vp9][fps>30]/bestvideo[height>240][vcodec^=vp9]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo+bestaudio/bestaudio[ext=opus]/best"}, {"Ultra High Definition (Best)" : "(bestvideo[height>1440][height<2161][vcodec^=av01]/bestvideo[height>1440][height<2161][vcodec^=vp9][fps>30]/bestvideo[height>1440][height<2161][vcodec^=vp9]/bestvideo[height>1080][vcodec^=av01]/bestvideo[height>1080][vcodec^=vp9][fps>30]/bestvideo[height>1080][vcodec^=vp9]/bestvideo[height>720][vcodec^=av01]/bestvideo[height>720][vcodec^=vp9][fps>30]/bestvideo[height>720][vcodec^=vp9]/bestvideo[height>240][vcodec^=av01]/bestvideo[vcodec^=vp9][fps>30]/bestvideo[height>240][vcodec^=vp9]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?2161]+bestaudio/bestaudio[ext=opus]/best[height<?2161]"}, {"Ultra High Definition (Standard Low Framerate)" : "(bestvideo[height>1440][height<2161][vcodec^=av01][fps<31]/bestvideo[height>1440][height<2161][vcodec^=vp9][fps<31]/bestvideo[height>1080][vcodec^=av01][fps<31]/bestvideo[height>1080][vcodec^=vp9][fps<31]/bestvideo[height>720][vcodec^=av01][fps<31]/bestvideo[height>720][vcodec^=vp9][fps<31]/bestvideo[height>240][vcodec^=av01][fps<31]/bestvideo[height>240][vcodec^=vp9][fps<31]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?2161][fps<?31]+bestaudio/bestaudio[ext=opus]/(best[height<?2161][fps<?31])"}, {"Quad High Definition (Best)" : "(bestvideo[height>1080][height<1441][vcodec^=av01]/bestvideo[height>1080][height<1441][vcodec^=vp9][fps>30]/bestvideo[height>1080][height<1441][vcodec^=vp9]/bestvideo[height>720][vcodec^=av01]/bestvideo[height>720][vcodec^=vp9][fps>30]/bestvideo[height>720][vcodec^=vp9]/bestvideo[height>240][vcodec^=av01]/bestvideo[vcodec^=vp9][fps>30]/bestvideo[height>240][vcodec^=vp9]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?1801]+bestaudio/bestaudio[ext=opus]/best[height<?1801]"}, {"Quad High Definition (Standard Low Framerate)" : "(bestvideo[height>1080][height<1441][vcodec^=av01][fps<31]/bestvideo[height>1080][height<1441][vcodec^=vp9][fps<31]/bestvideo[height>720][vcodec^=av01][fps<31]/bestvideo[height>720][vcodec^=vp9][fps<31]/bestvideo[height>240][vcodec^=av01][fps<31]/bestvideo[height>240][vcodec^=vp9][fps<31]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?1801][fps<31]+bestaudio/bestaudio[ext=opus]/(best[height<?1801][fps<31])"}, {"Full High Definition (Best)" : "(bestvideo[height>720][height<1081][vcodec^=av01]/bestvideo[height>720][height<1081][vcodec^=vp9][fps>30]/bestvideo[height>720][height<1081][vcodec^=vp9]/bestvideo[height>240][vcodec^=av01]/bestvideo[vcodec^=vp9][fps>30]/bestvideo[height>240][vcodec^=vp9]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?1081]+bestaudio/bestaudio[ext=opus]/best[height<?1081]"}, {"Full High Definition (Standard Low Framerate)" : "(bestvideo[height>720][height<1081][vcodec^=av01][fps<31]/bestvideo[height>720][height<1081][vcodec^=vp9][fps<31]/bestvideo[height>240][vcodec^=av01][fps<31]/bestvideo[height>240][vcodec^=vp9][fps<31]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?1081][fps<31]+bestaudio/bestaudio[ext=opus]/(best[height<?1081][fps<31])"}, {"High Definition (Best)" : "(bestvideo[height>240][height<721][vcodec^=av01]/bestvideo[height<721][vcodec^=vp9][fps>30]/bestvideo[height>240][height<721][vcodec^=vp9]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?901]+bestaudio/bestaudio[ext=opus]/best[height<?901]"}, {"High Definition (Standard Low Framerate)" : "(bestvideo[height>240][height<721][vcodec^=av01][fps<31]/bestvideo[height>240][height<721][vcodec^=vp9][fps<31]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?901][fps<31]+bestaudio/bestaudio[ext=opus]/(best[height<?901][fps<31])"}, {"Standard Definition" : "(bestvideo[height>240][height<481][vcodec^=av01]/bestvideo[height>240][height<481][vcodec^=vp9]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?577]+bestaudio/bestaudio[ext=opus]/best[height<?577]"}, {"Medium Resolution" : "(bestvideo[height>240][height<361][vcodec^=av01]/bestvideo[height>240][height<361][vcodec^=vp9]/best[height>240]/bestvideo[vcodec^=av01]/bestvideo[vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?480]+bestaudio/bestaudio[ext=opus]/best[height<?480]"}, {"Low Definition" : "(bestvideo[height<241][vcodec^=av01]/bestvideo[height<241][vcodec^=vp9])+bestaudio[asr=48000]/bestvideo[height<?360]+bestaudio/bestaudio[ext=opus]/best[height<?360]"}, {"Worst" : "worstvideo+worstaudio/worst"}, {"Audio Only" : "bestaudio[asr=48000]/bestaudio[ext=opus]/bestaudio"}]

Quality strings will always select av1 if available and then go for vp9 if not. Audio will always be standard opus or 5.1 aac or ambisonic audio. Opus in soundcloud and low framerate version in twitch if selected. https://www.reddit.com/r/youtubedl/comments/dzj0mr/youtubedl_the_complete_installation_guide_for/f87sthc/ https://www.reddit.com/r/youtubedl/comments/gaqak5/251_vs_258_for_audio/

OldNero commented 4 years ago

I will check this thank you.

B-eT-a commented 4 years ago

well, i also would like an dialog where i got asked what selection i want.. sometimes i want the HDR stream, sometimes teh 30fps H264 stream in 720 or 1080p.. This is also the only thing keeping me from using youtube-dl. at the moment im using "youtube-source" (https://ys.3dyd.com/) wich you can configure to allways display a Dialog where you can select what you need..

Best Regards, BeTa