Class: DailymotionApi::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/dailymotion-api/client.rb

Constant Summary collapse

API_URL =
"https://api.dailymotion.com"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Client

Returns a new instance of Client.



8
9
10
11
12
13
# File 'lib/dailymotion-api/client.rb', line 8

def initialize(params = {})
  @username = params[:username]
  @password = params[:password]
  @api_key = params[:api_key]
  @api_secret = params[:api_secret]
end

Instance Attribute Details

#video_idObject (readonly)

Returns the value of attribute video_id.



6
7
8
# File 'lib/dailymotion-api/client.rb', line 6

def video_id
  @video_id
end

Instance Method Details

#create_videoObject



30
31
32
33
# File 'lib/dailymotion-api/client.rb', line 30

def create_video
  response = HTTMultiParty.post("#{API_URL}/me/videos", body: {access_token: @access_token, url: @uploaded_video_url})
  @video_id = response.parsed_response["id"]
end

#get_upload_urlObject



20
21
22
23
# File 'lib/dailymotion-api/client.rb', line 20

def get_upload_url
  response = HTTMultiParty.get("#{API_URL}/file/upload?access_token=#{@access_token}")
  @upload_url = response.parsed_response["upload_url"]
end

#get_video(video_id, fields = "") ⇒ Object



39
40
41
42
43
44
# File 'lib/dailymotion-api/client.rb', line 39

def get_video(video_id, fields = "")
  return nil unless video_id

  response = HTTMultiParty.get("#{API_URL}/video/#{video_id}?fields=#{fields}")
  response.parsed_response
end

#post_video(video) ⇒ Object



25
26
27
28
# File 'lib/dailymotion-api/client.rb', line 25

def post_video(video)
  response = HTTMultiParty.post(@upload_url, body: {file: video})
  @uploaded_video_url = response.parsed_response["url"]
end

#publish_video(data) ⇒ Object



35
36
37
# File 'lib/dailymotion-api/client.rb', line 35

def publish_video(data)
  HTTMultiParty.post("#{API_URL}/video/#{@video_id}", body: data.merge(access_token: @access_token, published: true))
end

#request_access_tokenObject



15
16
17
18
# File 'lib/dailymotion-api/client.rb', line 15

def request_access_token
  response = HTTMultiParty.post("#{API_URL}/oauth/token", body: {grant_type: "password", client_id: @api_key, client_secret: @api_secret, username: @username, password: @password})
  @access_token = response.parsed_response["access_token"]
end

#video_urlObject



46
47
48
# File 'lib/dailymotion-api/client.rb', line 46

def video_url
  @video_url ||= get_video(@video_id, "url")["url"] rescue nil
end