Class: YoutubeSearcher::Client

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/youtube-searcher/client.rb

Constant Summary collapse

APPLICATION_NAME =
"Youtube Searcher"
YOUTUBE_API_SERVICE_NAME =
"youtube"
YOUTUBE_API_VERSION =
"v3"

Instance Method Summary collapse

Instance Method Details

#clientObject



37
38
39
# File 'lib/youtube-searcher/client.rb', line 37

def client
  @client ||= Google::APIClient.new(key: api_key, authorization: nil, application_name: APPLICATION_NAME, application_version: YoutubeSearcher::VERSION)
end

#search(query, max_results: 20) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/youtube-searcher/client.rb', line 12

def search(query, max_results: 20)
  parameters = Hash.new
  parameters[:part] = "id,snippet"
  parameters[:type] = "video"
  parameters[:maxResults] = max_results
  parameters[:q] = query

  response = client.execute!(
    api_method: youtube.search.list,
    parameters: parameters
  )

  videos = Array.new

  response.data.items.each do |result|
    video = Hash.new
    video[:title] = result.snippet.title
    video[:url]   = "http://www.youtube.com/watch?v=#{result.id.videoId}"

    videos << video
  end

  videos
end

#youtubeObject



41
42
43
# File 'lib/youtube-searcher/client.rb', line 41

def youtube
  @youtube ||= @client.discovered_api(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION)
end