class YoutubeAudio::ScriptParser
Public Class Methods
new(script)
click to toggle source
@param script [String]
# File lib/youtube_audio/script_parser.rb, line 6 def initialize(script) @script = script end
Public Instance Methods
player_response()
click to toggle source
@return [YoutubeAudio::PlayerResponse]
# File lib/youtube_audio/script_parser.rb, line 11 def player_response mini_racer_context = MiniRacer::Context.new # initialize mandatory variables to can parsed the youtube script mini_racer_context.eval('window = {}; function setTimeout() {}') # parse youtube script mini_racer_context.eval(@script) # get player response ... response = mini_racer_context.eval('ytInitialPlayerConfig') PlayerResponse.new( JSON.parse(response['args']['player_response']), script_player_url: response['assets']['js'] ) end