Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local mp = require 'mp'
- local utils = require 'mp.utils'
- -- resolve title using youtube-dl
- function resolve_title(filename)
- -- workaround about poor man's mutex
- -- ensures that the actual check won't happen twice
- if title_cache[filename] then
- return title_cache[filename]
- end
- end
- mp.register_script_message("ytdl_resolve_title", function(filename)
- -- debug message
- -- print('[ytdl_resolve_title]:', 'resolving title for:', filename)
- -- title cannot be resolved using youtube-dl
- if not string.match(filename, "^https?://") then
- -- print('[ytdl_resolve_title]:', 'not a network resource')
- return
- end
- local res = io.popen('youtube-dl --flat-playlist -sJ '.. filename):read("*all")
- local err
- local json, err = utils.parse_json(res)
- if err then
- error('[ytdl_resolve_title]:', 'error parsing json')
- return
- else
- local playlist = json['_type'] and json['_type'] == 'playlist'
- local title = (playlist and '[playlist]: ' or '') .. json['title']
- mp.commandv('script-message', 'osc_update_title', filename, title)
- end
- -- print('finished resolving title for:', filename)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement