Advertisement
Guest User

Untitled

a guest
Feb 6th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.31 KB | None | 0 0
  1. local mp = require 'mp'
  2. local utils = require 'mp.utils'
  3.  
  4. -- resolve title using youtube-dl
  5. function resolve_title(filename)
  6.     -- workaround about poor man's mutex
  7.     -- ensures that the actual check won't happen twice
  8.     if title_cache[filename] then
  9.         return title_cache[filename]
  10.     end
  11.  
  12. end
  13.  
  14. mp.register_script_message("ytdl_resolve_title", function(filename)
  15.         -- debug message
  16.         -- print('[ytdl_resolve_title]:', 'resolving title for:', filename)
  17.        
  18.         -- title cannot be resolved using youtube-dl
  19.         if not string.match(filename, "^https?://") then
  20.             -- print('[ytdl_resolve_title]:', 'not a network resource')
  21.             return
  22.         end
  23.        
  24.         local res = io.popen('youtube-dl --flat-playlist -sJ '.. filename):read("*all")
  25.         local err
  26.         local json, err = utils.parse_json(res)
  27.         if err then
  28.             error('[ytdl_resolve_title]:', 'error parsing json')
  29.             return
  30.         else
  31.             local playlist = json['_type'] and json['_type'] == 'playlist'
  32.             local title = (playlist and '[playlist]: ' or '') .. json['title']
  33.             mp.commandv('script-message', 'osc_update_title', filename, title)
  34.         end
  35.            
  36.         -- print('finished resolving title for:', filename)
  37.     end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement