aboutsummaryrefslogtreecommitdiffhomepage
path: root/player/lua/ytdl_hook.lua
Commit message (Collapse)AuthorAge
* ytdl_hook: fix audio not being picked up for some sitesGravatar Ricardo Constantino2018-09-26
|
* ytdl_hook: always load ytdl:// links with ytdl_hook firstGravatar Ricardo Constantino2018-08-17
| | | | Suggested in IRC by sfan5.
* ytdl_hook: try to set video track first if availableGravatar Ricardo Constantino2018-05-03
| | | | | | | Fixes `--ytdl-format="dash-fastly_skyfire-video-363357330+dash-fastly_skyfire_sep-audio-363357330" https://vimeo.com/108650530` This happened because the video track also had audio available and after adding it expecting an audio-only track, there were no more tracks with video.
* ytdl_hook: don't log error when loading is abortedGravatar wm42018-04-15
|
* ytdl_hook: add ytdl:// prefix again for non-youtube playlistsGravatar Ricardo Constantino2018-02-11
| | | | | | | | Only youtube playlists return ID-only urls. Other extractors may return "<extractor>:<ID>" so those still need the ytdl:// prefix. Reproduced with http://www.cbc.ca/burdenoftruth/videos/trailers-promos/burden-of-truth-returns
* ytdl_hook: add script opt for using manifest URLsGravatar Ricardo Constantino2018-02-11
| | | | | | | | | | | Disable by default. This feature was added in 7eb342757, which allowed stream selection in runtime. Problem with this atm is that FFmpeg will try to demux every first packet of every track leading to noticeable delay opening the URL. This option can be changed to enabled by default or removed when HLS/DASH demuxers are improved upstream.
* ytdl_hook: parse youtube playlist urls to set start indexGravatar Ricardo Constantino2018-02-11
| | | | | | | | | | | | | | Still needs `--ytdl-raw-option=yes-playlist=` because this only works for youtube. This was requested in a few issues: https://github.com/mpv-player/mpv/issues/1400 https://github.com/mpv-player/mpv/issues/2592 https://github.com/mpv-player/mpv/issues/3024 For #1400 to be completely implemented would need ytdl_hook to re-request the same playlist with the last video's ID for the mix to continue indefinitely which would probably too hackish to work reliably.
* ytdl_hook: exit early, save an indentation levelGravatar Ricardo Constantino2018-02-11
|
* ytdl_hook: various nitGravatar Ricardo Constantino2018-02-11
| | | | | | | | Remove obsolete comment about FFmpeg ignoring non-http proxies which was repeated in ytdl_hook before the feature was added. Remove unnecessary conditions for not nil. Lua tables will always return nil for non-existent keys.
* ytdl_hook: whitelist subtitle URLs as wellGravatar Ricardo Constantino2018-02-11
| | | | | This was overlooked when doing the whitelisting for video and audio to fix #5456.
* ytdl_hook: use fallback if there's no demuxer-lavf-list propGravatar Ricardo Constantino2018-02-11
| | | | | | | This is important if backporting by grabbing the latest version of the script without backporting the commit that added the property: 828bd2963cd10a851e0a977809687aed4d377dc3
* ytdl_hook: pass http proxy to ffmpegGravatar Ricardo Constantino2018-01-30
| | | | | | | | | | | | | | FFmpeg only suppports http proxies and ignores it if the resulting url is https. Also, no SOCKS. Use it like `--ytdl-raw-options=proxy=[http://127.0.0.1:3128]` so it doesn't confuse mpv because of the colons. You need to pass it as an option because youtube-dl doesn't give us the proxy. Or just set `http_proxy` environment variable as recommended before. Added example using -append, which doesn't need escaping.
* ytdl_hook: pre-append id-only playlist items with shortened youtube URLGravatar Ricardo Constantino2018-01-29
|
* ytdl_hook: whitelist segmented DASH and HLS for the manifests codeGravatar Ricardo Constantino2018-01-27
| | | | Close #5453
* ytdl_hook: prefer hls/dash manifest if availableGravatar Ricardo Constantino2018-01-26
| | | | | | | This makes all the video/audio variants available for selection. Might break with non-hls/dash, or even with dash if FFmpeg wasn't compiled with the demuxer.
* ytdl_hook: fix safe url checking with EDL urlsGravatar Ricardo Constantino2018-01-26
|
* ytdl_hook: move url_is_safe earlier in codeGravatar Ricardo Constantino2018-01-26
| | | | lua isn't javascript.
* ytdl_hook: whitelist protocols from urls retrieved from youtube-dlGravatar Ricardo Constantino2018-01-26
| | | | | | Not very clean since there's a lot of potential unsafe urls that youtube-dl can give us, depending on whether it's a single url, split tracks, playlists, segmented dash, etc.
* ytdl_hook: support native dash demuxer, if presentGravatar Ricardo Constantino2018-01-15
| | | | | | Uses track tbr instead of track disposition id for dash selection Works just as expected because youtube-dl also takes tbr from the manifests.
* ytdl_hook: look for the right ytdl binary according to systemGravatar Ricardo Constantino2018-01-12
| | | | | | | | package.config is available in 5.1, 5.2, 5.3 and luajit, so should be fine. The first character is the path separator, so it's '\' on windows and '/' on *nix. This should also prevent cases where users download the wrong binary.
* ytdl_hook: be more informative when youtube-dl failsGravatar Ricardo Constantino2018-01-12
|
* ytdl_hook: don't try to use webpage_url if non-existentGravatar Ricardo Constantino2018-01-11
|
* ytdl_hook: actually use the script option from 87d3af6Gravatar Ricardo Constantino2018-01-07
|
* ytdl_hook: add script option to revert to trying youtube-dl firstGravatar Ricardo Constantino2018-01-07
| | | | | Should only make a difference if most of the URLs you open need youtube-dl parsing.
* ytdl_hook: check for possible infinite loop in playlist generationGravatar Ricardo Constantino2018-01-06
|
* ytdl_hook: add additional check for comedycentral urlsGravatar Ricardo Constantino2018-01-06
| | | | | | | If this breaks another site again, remove this whole if and just leave them as separate playlist items. Close #5364
* ytdl_hook: update obsolete warning about retrying URL if failedGravatar Ricardo Constantino2018-01-04
|
* player: add on_load_fail hookGravatar Ricardo Constantino2018-01-02
|
* ytdl_hook: fix single-entry playlistsGravatar Ricardo Constantino2018-01-02
| | | | Close #5313
* ytdl_hook: use table concat for playlist buildingGravatar Ricardo Constantino2017-12-24
| | | | Faster and more efficient than string concat with large playlists.
* ytdl_hook: don't preappend ytdl:// to non-youtube links in playlistsGravatar Ricardo Constantino2017-12-24
| | | | Close #5003
* Revert "ytdl: handle HLS with FFmpeg"Gravatar Kevin Mitchell2017-12-07
| | | | | | Apparently, this breaks youtube live and possibly other things. This reverts commit 06519aae5837312437b07e8bfef10c025ec2f688.
* ytdl: handle HLS with FFmpegGravatar wm42017-12-06
| | | | | Using youtube-dl's metadata ends up with stupid things like missing variant streams, or missing audio streams entirely.
* ytdl_hook: resolve relative paths when joining segment urlsGravatar Ricardo Constantino2017-09-03
| | | | | FFmpeg/mpv don't do it automatically. See #4827
* ytdl_hook: support fragments with relative pathsGravatar Ricardo Constantino2017-08-06
| | | | | | | Unbreaks segmented DASH with the change in https://github.com/rg3/youtube-dl/commit/1141e9104 which made each segment URL only use relative path from fragment_base_url with a different key.
* ytdl_hook: add a header to support geo-bypassGravatar Jagannathan Tiruvallur Eachambadi2017-07-16
| | | | | | youtube-dl supports bypassing some geographic restrictions by setting X-Forwarded-For header when used with geo-bypass and geo-bypass-country.
* ytdl_hook: actually load the script-optsGravatar Ricardo Constantino2017-07-11
| | | | | Also, comma-separated list doesn't actually work, even quote-surrounded. Switch to using | instead.
* ytdl_hook: add option to exclude URLs from being parsedGravatar Ricardo Constantino2017-07-11
| | | | | | | | | This is more of a niche usecase than --ytdl-format and --ytdl-raw-options, so a simple script option should be enough. Either create lua-settings/ytdl_hook.conf with 'exclude=example.com,sub.example.com' option or "--script-opts=ytdl_hook-exclude=example.com,sub.example.com"
* ytdl_hook: add times for ytdl and hook running on debug-levelGravatar Ricardo Constantino2017-07-11
| | | | Not really important, but still interesting to know.
* ytdl_hook: add pre-parsed chapters, if availableGravatar Ricardo Constantino2017-07-02
| | | | Available since 2017.05.07 but only on certain extractors.
* ytdl_hook: don't override start time set by saved stateGravatar Martin D2017-06-09
| | | | This affects resuming playback from a watch_later directory so that you can resume playback even for URLs that have a start parameter.
* ytdl_hook: don't override user-set start timeGravatar Ricardo Constantino2017-06-08
|
* ytdl_hook: rework edl joining to use lua tablesGravatar Ricardo Constantino2017-05-04
| | | | Seems much more resource efficient than concatenating a string.
* ytdl_hook: treat single-entry playlists as a single videoGravatar Ricardo Constantino2017-04-23
|
* ytdl_hook: move single video code to a separate functionGravatar Ricardo Constantino2017-04-23
|
* ytdl_hook: support livestream segmented DASH VODsGravatar Ricardo Constantino2017-02-10
| | | | | | | | | | | | Seen with a VOD of a recently ended livestream on Youtube. They seem to use segmented DASH but unlike normal Youtube segmented DASH, the segments don't seem to need the initialization segment. The video actually fails to start to play if the init segment is prepended with a lot of 'Found duplicated MOOV Atom. Skipped it' errors popping up.
* ytdl_hook: reenable support for length-less segments in EDLGravatar Ricardo Constantino2017-02-06
| | | | They're unsupported only in MP4 DASH mode.
* ytdl_hook: fix EDL syntaxGravatar wm42017-02-05
| | | | | All entries must be separated by ";" or "\n". The parser just doesn't enforce it if an entry uses quoting.
* ytdl_hook: Add non-dash fallbacks to default formatsGravatar Ricardo Constantino2017-02-04
|
* ytdl_hook, edl: implement pseudo-DASH supportGravatar wm42017-02-04
| | | | | | | | | We use the metadata provided by youtube-dl to sort-of implement fragmented DASH streaming. This is all a bit hacky, but hopefully a makeshift solution until libavformat has proper mechanisms. (Although in danger of being one of those temporary hacks that become permanent.)