Class: DailymotionApi::Client
- Inherits:
-
Object
- Object
- DailymotionApi::Client
- Defined in:
- lib/dailymotion-api/client.rb
Constant Summary collapse
- API_URL =
"https://api.dailymotion.com"
Instance Attribute Summary collapse
-
#video_id ⇒ Object
readonly
Returns the value of attribute video_id.
Instance Method Summary collapse
- #create_video ⇒ Object
- #get_upload_url ⇒ Object
- #get_video(video_id, fields = "") ⇒ Object
-
#initialize(params = {}) ⇒ Client
constructor
A new instance of Client.
- #post_video(video) ⇒ Object
- #publish_video(data) ⇒ Object
- #request_access_token ⇒ Object
- #video_url ⇒ Object
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_id ⇒ Object (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_video ⇒ Object
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_url ⇒ Object
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_token ⇒ Object
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_url ⇒ Object
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 |