class YoutubeParser::Client
Constants
- BASE_URL
- DATA_REGEX
Attributes
options[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/youtube_parser/client.rb, line 10 def initialize(options = {}) @options = Resource.new(options) end
Public Instance Methods
get(endpoint, options = {})
click to toggle source
# File lib/youtube_parser/client.rb, line 14 def get(endpoint, options = {}) response = client.get(endpoint, options) return {} unless response.status.eql?(200) json_str = response.body[DATA_REGEX, 1] get_json json_str end
Private Instance Methods
client()
click to toggle source
# File lib/youtube_parser/client.rb, line 25 def client opts = { ssl: { verify: false }, request: { timeout: 10 } } @client ||= Faraday.new(BASE_URL, opts) do |request| request.adapter Faraday.default_adapter request.headers['Accept-Language'] = 'en-US' request.headers['User-Agent'] = options.user_agent if options.user_agent request.proxy = proxy if options.proxy end end
get_json(json_str)
click to toggle source
# File lib/youtube_parser/client.rb, line 41 def get_json(json_str) Oj.load(json_str) end
proxy()
click to toggle source
# File lib/youtube_parser/client.rb, line 35 def proxy URI(options.proxy) rescue URI::InvalidURIError URI("//#{options.proxy}") end