An open API service indexing awesome lists of open source software.

https://github.com/ggarnier/dailymotion-api-client

DailyMotion API Ruby client
https://github.com/ggarnier/dailymotion-api-client

dailymotion hacktoberfest ruby video

Last synced: 6 months ago
JSON representation

DailyMotion API Ruby client

Awesome Lists containing this project

README

          

# DailyMotion API Ruby Client

[![Build Status](https://travis-ci.org/ggarnier/dailymotion-api-client.svg)](https://travis-ci.org/ggarnier/dailymotion-api-client)

Client for DailyMotion API (http://www.dailymotion.com/doc/api/graph-api.html) written in Ruby.

## Installation

Add this line to your application's Gemfile:

gem 'dailymotion-api-client'

And then execute:

$ bundle

Or install it yourself as:

$ gem install dailymotion-api-client

## Usage

To use this client, you need to register an account at Dailymotion and [create an API key](http://www.dailymotion.com/settings/developer/new). You need an API key and API secret.

```ruby
# Create an instance of DailymotionApi::Client
client = DailymotionApi::Client.new(username: "username", password: "password", api_key: "key", api_secret: "secret")
```

### Publishing a video

```ruby
# Request an access token
client.request_access_token

# Request an upload url
client.generate_upload_url

# Post your video
client.post_video(File.new("my_video.mp4"))

# Create a video
client.create_video

# Update video metadata an publish it
client.publish_video(title: "my video", channel: "shortfilms", tags: "my_tag")
```

### Getting info about a published video

```ruby
# Get basic metadata for a video with id "video_id"
client.get_video("video_id")
=> {"id"=>"video_id", "title"=>"my video", "channel"=>"shortfilms", "owner"=>"owner_id"}

# Get specific fields for a video with id "video_id"
client.get_video("video_id", "url,title")
=> {"url"=>"http://www.dailymotion.com/video/video_id_my-video_shortfilms", "title"=>"my video"}
```

### Getting info about authenticated user

```ruby
client.request_access_token

client.get_authenticated_user_info
=> {"id"=>"owner_id", "screenname"=>"username"}

client.get_authenticated_user_info("screenname")
=> {"screenname"=>"username"}
```

### Getting a list of videos published by authenticated user

```ruby
client.request_access_token

client.get_authenticated_user_videos
=> {"page"=>1, "limit"=>10, "explicit"=>false, "total"=>1, "has_more"=>false, "list"=>[{"id"=>"video_id", "title"=>"my video", "channel"=>"shortfilms", "owner"=>"owner_id"}]}

client.get_authenticated_user_videos("url")
=> {"page"=>1, "limit"=>10, "explicit"=>false, "total"=>1, "has_more"=>false, "list"=>[{"url"=>"http://www.dailymotion.com/video/video_id_my-video_shortfilms"}]}
```

### Deleting a video

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request