Class: ActivePublicResources::Drivers::Youtube

Inherits:
Driver
  • Object
show all
Defined in:
lib/active_public_resources/drivers/youtube.rb

Instance Method Summary collapse

Instance Method Details

#perform_request(request_criteria) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/active_public_resources/drivers/youtube.rb', line 7

def perform_request(request_criteria)
  request_criteria.validate_presence!([:query])

  uri = URI('https://gdata.youtube.com/feeds/api/videos')
  params = {
    'v'           => 2,
    'q'           => request_criteria.query,
    'orderby'     => sort(request_criteria.sort),
    'alt'         => 'json',
    'safeSearch'  => content_filter(request_criteria.content_filter),
    'start-index' => request_criteria.page || 1,
    'max-results' => request_criteria.per_page || 25
  }

  uri.query = URI.encode_www_form(params)

  res = Net::HTTP.get_response(uri)
  results = JSON.parse(res.body)
  
  return parse_results(request_criteria, results)
end