class YoutubeAudio::Decipher

Constants

URL

Attributes

script_player_url[R]

Public Class Methods

new(script_player_url) click to toggle source
# File lib/youtube_audio/decipher.rb, line 8
def initialize(script_player_url)
  @script_player_url = script_player_url
end

Public Instance Methods

decipher(cipher) click to toggle source

@param cipher [string] youtube signature

# File lib/youtube_audio/decipher.rb, line 13
def decipher(cipher)
  klass = extract_decode_function_handler
  miniracer_klass = miniracer_context

  miniracer_klass.eval(klass.cipher_helpers_object)
  miniracer_klass.eval("var #{klass.decipher_function}")
  miniracer_klass.eval("#{klass.decryption_function}('#{cipher}')")
end

Private Instance Methods

extract_decode_function_handler() click to toggle source
# File lib/youtube_audio/decipher.rb, line 24
def extract_decode_function_handler
  @extract_decode_function_handler ||=
    ExtractDecodeFunction.new(script_player_content)
end
miniracer_context() click to toggle source
# File lib/youtube_audio/decipher.rb, line 29
def miniracer_context
  MiniRacer::Context.new
end
script_player_content() click to toggle source
# File lib/youtube_audio/decipher.rb, line 33
def script_player_content
  @script_player_content ||= Net::HTTP.get(URI(URL + script_player_url))
end