brightcove-api 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +5 -0
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/brightcove-api.gemspec +7 -2
- data/lib/brightcove-api.rb +18 -2
- data/test/fakeweb/create_video_response.json +1 -0
- data/test/fakeweb/movie.mov +0 -0
- data/test/test_brightcove-api.rb +17 -1
- metadata +22 -4
data/README.rdoc
CHANGED
@@ -24,6 +24,11 @@ Ruby gem for interacting with the Brightcove media API. http://docs.brightcove.c
|
|
24
24
|
=> {"items"=>[{"longDescription"=>nil, "name"=>"Wild Slopes '06", "lastModifiedDate"=>"1171324523307", "thumbnailURL"=>"http://brightcove.vo.llnwd.net/d2/unsecured/media/270881183/270881183_502534829_94499905676eb7cd04a558da2adcf6a34f437b88.jpg?pubId=270881183", "tags"=>["adventure", "snowboarding"], "playsTrailingWeek"=>35, "shortDescription"=>"A ski and snowboard movie that challenges the hype and dares you to see what freeskiing and snowboarding have become. Documenting the very best of this year's riding and culture.", "playsTotal"=>4458, "adKeys"=>nil, "id"=>496518766, "length"=>51251, "videoStillURL"=>"http://brightcove.vo.llnwd.net/d2/unsecured/media/270881183/270881183_502534838_f80fe64f052328cd3b2e158d7234003a23091845.jpg?pubId=270881183", "publishedDate"=>"1171324434811", "creationDate"=>"1171267200000", "linkText"=>nil, "economics"=>"FREE", "referenceId"=>"title010", "linkURL"=>nil}, {"longDescription"=>nil, "name"=>"Jellyfish", "lastModifiedDate"=>"1245181300374", "thumbnailURL"=>"http://brightcove.vo.llnwd.net/d7/unsecured/media/270881183/270881183_26530711001_jellyFish.jpg?pubId=270881183", "tags"=>["sea", "custom skins"], "playsTrailingWeek"=>46, "shortDescription"=>"Jellyfish", "playsTotal"=>4081, "adKeys"=>nil, "id"=>26512561001, "length"=>28400, "videoStillURL"=>"http://brightcove.vo.llnwd.net/d7/unsecured/media/270881183/270881183_26519430001_vs-270881183-vid26513829001-img0000.jpg?pubId=270881183", "publishedDate"=>"1245172164326", "creationDate"=>"1245172164326", "linkText"=>nil, "economics"=>"AD_SUPPORTED", "referenceId"=>nil, "linkURL"=>nil}, {"longDescription"=>"Long Description", "name"=>"Demo Title 2", "lastModifiedDate"=>"1263581295791", "thumbnailURL"=>"http://brightcove.vo.llnwd.net/d2/unsecured/media/270881183/270881183_275925069_d1f97c7f07f2a3f4de7b38eda3761f16f39d2a99.jpg?pubId=270881183", "tags"=>[], "playsTrailingWeek"=>1, "shortDescription"=>"Short Description", "playsTotal"=>3876, "adKeys"=>nil, "id"=>276024035, "length"=>418742, "videoStillURL"=>"http://brightcove.vo.llnwd.net/d2/unsecured/media/270881183/270881183_275943599_b7e2ca63c0311fa3f0b027304b41d252f12d2d66.jpg?pubId=270881183", "publishedDate"=>"1161296014264", "creationDate"=>"1161241200000", "linkText"=>"Related Link", "economics"=>"FREE", "referenceId"=>nil, "linkURL"=>"http://www.brightcove.com"}, {"longDescription"=>nil, "name"=>"Dolphins", "lastModifiedDate"=>"1263581295790", "thumbnailURL"=>"http://brightcove.vo.llnwd.net/d7/unsecured/media/270881183/270881183_26531197001_dolphins.jpg?pubId=270881183", "tags"=>["sea", "custom skins"], "playsTrailingWeek"=>30, "shortDescription"=>"Dolphins", "playsTotal"=>3870, "adKeys"=>nil, "id"=>26511963001, "length"=>12800, "videoStillURL"=>"http://brightcove.vo.llnwd.net/d7/unsecured/media/270881183/270881183_26519372001_vs-270881183-vid26510372001-img0000.jpg?pubId=270881183", "publishedDate"=>"1245171732987", "creationDate"=>"1245171732987", "linkText"=>nil, "economics"=>"AD_SUPPORTED", "referenceId"=>nil, "linkURL"=>nil}, {"longDescription"=>nil, "name"=>"Welcome to Brightcove 3", "lastModifiedDate"=>"1225134261511", "thumbnailURL"=>"http://brightcove.vo.llnwd.net/d6/unsecured/media/270881183/270881183_1858983740_brightcove3-thumb.jpg?pubId=270881183", "tags"=>[], "playsTrailingWeek"=>0, "shortDescription"=>"Tareef Kawaf, Brightcove's SVP of Engineering, welcomes you to Brightcove 3.", "playsTotal"=>3349, "adKeys"=>nil, "id"=>1858922805, "length"=>53820, "videoStillURL"=>"http://brightcove.vo.llnwd.net/d6/unsecured/media/270881183/270881183_1858994782_vid-StudioDashboards.jpg?pubId=270881183", "publishedDate"=>"1225134261508", "creationDate"=>"1224096089173", "linkText"=>nil, "economics"=>"AD_SUPPORTED", "referenceId"=>nil, "linkURL"=>nil}], "page_number"=>0, "page_size"=>5, "total_count"=>-1}
|
25
25
|
>> response = brightcove.post('delete_video', {:video_id => '595153263001'})
|
26
26
|
=> {"result"=>{}, "id"=>nil, "error"=>nil}
|
27
|
+
|
28
|
+
If you want to perform a file upload, for example, to create a video, you can use the __post_file()__ method.
|
29
|
+
|
30
|
+
>> response = brightcove.post_file('create_video', '/path/to/video.mov', :video => {:shortDescription => 'Short Description', :name => 'Video name'})
|
31
|
+
=> {"result"=>653155417001, "error=>nil, "id"=>nil}
|
27
32
|
|
28
33
|
== Note on Patches/Pull Requests
|
29
34
|
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.3
|
data/brightcove-api.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{brightcove-api}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["David Czarnecki"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-10-29}
|
13
13
|
s.description = %q{Ruby gem for interacting with the Brightcove media API. http://docs.brightcove.com/en/media/}
|
14
14
|
s.email = %q{dczarnecki@agoragames.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -25,8 +25,10 @@ Gem::Specification.new do |s|
|
|
25
25
|
"VERSION",
|
26
26
|
"brightcove-api.gemspec",
|
27
27
|
"lib/brightcove-api.rb",
|
28
|
+
"test/fakeweb/create_video_response.json",
|
28
29
|
"test/fakeweb/delete_video_response.json",
|
29
30
|
"test/fakeweb/find_all_videos_response.json",
|
31
|
+
"test/fakeweb/movie.mov",
|
30
32
|
"test/helper.rb",
|
31
33
|
"test/test_brightcove-api.rb"
|
32
34
|
]
|
@@ -48,15 +50,18 @@ Gem::Specification.new do |s|
|
|
48
50
|
s.add_runtime_dependency(%q<httparty>, ["= 0.5.2"])
|
49
51
|
s.add_runtime_dependency(%q<fakeweb>, ["= 1.2.8"])
|
50
52
|
s.add_runtime_dependency(%q<json>, ["= 1.2.4"])
|
53
|
+
s.add_runtime_dependency(%q<rest-client>, ["= 1.6.1"])
|
51
54
|
else
|
52
55
|
s.add_dependency(%q<httparty>, ["= 0.5.2"])
|
53
56
|
s.add_dependency(%q<fakeweb>, ["= 1.2.8"])
|
54
57
|
s.add_dependency(%q<json>, ["= 1.2.4"])
|
58
|
+
s.add_dependency(%q<rest-client>, ["= 1.6.1"])
|
55
59
|
end
|
56
60
|
else
|
57
61
|
s.add_dependency(%q<httparty>, ["= 0.5.2"])
|
58
62
|
s.add_dependency(%q<fakeweb>, ["= 1.2.8"])
|
59
63
|
s.add_dependency(%q<json>, ["= 1.2.4"])
|
64
|
+
s.add_dependency(%q<rest-client>, ["= 1.6.1"])
|
60
65
|
end
|
61
66
|
end
|
62
67
|
|
data/lib/brightcove-api.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
require 'httparty'
|
2
2
|
require 'json'
|
3
|
+
require 'rest-client'
|
3
4
|
|
4
5
|
module Brightcove
|
5
6
|
class API
|
6
7
|
include HTTParty
|
7
8
|
|
8
|
-
VERSION = '1.0.
|
9
|
+
VERSION = '1.0.3'.freeze
|
9
10
|
|
10
11
|
DEFAULT_HEADERS = {
|
11
12
|
'User-Agent' => "brightcove-api gem #{VERSION}"
|
@@ -58,8 +59,23 @@ module Brightcove
|
|
58
59
|
body = {}
|
59
60
|
body.merge!({:method => api_method})
|
60
61
|
body.merge!({:params => parameters})
|
61
|
-
|
62
|
+
|
62
63
|
self.class.post(@write_api_url, {:body => {:json => JSON.generate(body)}})
|
63
64
|
end
|
65
|
+
|
66
|
+
def post_file(api_method, file, parameters = {})
|
67
|
+
parameters.merge!({"token" => @token})
|
68
|
+
|
69
|
+
body = {}
|
70
|
+
body.merge!({:method => api_method})
|
71
|
+
body.merge!({:params => parameters})
|
72
|
+
|
73
|
+
response = RestClient.post(@write_api_url, {
|
74
|
+
:json => body.to_json,
|
75
|
+
:file => File.new(file, 'rb')
|
76
|
+
}, :content_type => :json, :accept => :json, :multipart => true)
|
77
|
+
|
78
|
+
JSON.parse(response)
|
79
|
+
end
|
64
80
|
end
|
65
81
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"result": 653155417001, "error": null, "id": null}
|
File without changes
|
data/test/test_brightcove-api.rb
CHANGED
@@ -12,7 +12,7 @@ class TestBrightcoveApi < Test::Unit::TestCase
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_api_version
|
15
|
-
assert_equal '1.0.
|
15
|
+
assert_equal '1.0.3', Brightcove::API::VERSION
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_can_set_read_api_url
|
@@ -73,4 +73,20 @@ class TestBrightcoveApi < Test::Unit::TestCase
|
|
73
73
|
assert brightcove_response.has_key?('result')
|
74
74
|
assert_equal brightcove_response['error'], 'nil'
|
75
75
|
end
|
76
|
+
|
77
|
+
def test_create_video_using_post_file
|
78
|
+
FakeWeb.register_uri(:post,
|
79
|
+
'http://api.brightcove.com/services/post',
|
80
|
+
:body => File.join(File.dirname(__FILE__), 'fakeweb', 'create_video_response.json'),
|
81
|
+
:content_type => "application/json")
|
82
|
+
|
83
|
+
brightcove = Brightcove::API.new('0Z2dtxTdJAxtbZ-d0U7Bhio2V1Rhr5Iafl5FFtDPY8E.')
|
84
|
+
brightcove_response = brightcove.post_file('delete_video',
|
85
|
+
File.join(File.dirname(__FILE__), 'fakeweb', 'movie.mov'),
|
86
|
+
:video => {:shortDescription => "Short Description", :name => "Video"})
|
87
|
+
|
88
|
+
assert brightcove_response.has_key?('result')
|
89
|
+
assert_equal '653155417001', brightcove_response['result'].to_s
|
90
|
+
assert_equal brightcove_response['error'], nil
|
91
|
+
end
|
76
92
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brightcove-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 3
|
10
|
+
version: 1.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- David Czarnecki
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-10-29 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -66,6 +66,22 @@ dependencies:
|
|
66
66
|
version: 1.2.4
|
67
67
|
type: :runtime
|
68
68
|
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rest-client
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - "="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 13
|
78
|
+
segments:
|
79
|
+
- 1
|
80
|
+
- 6
|
81
|
+
- 1
|
82
|
+
version: 1.6.1
|
83
|
+
type: :runtime
|
84
|
+
version_requirements: *id004
|
69
85
|
description: Ruby gem for interacting with the Brightcove media API. http://docs.brightcove.com/en/media/
|
70
86
|
email: dczarnecki@agoragames.com
|
71
87
|
executables: []
|
@@ -84,8 +100,10 @@ files:
|
|
84
100
|
- VERSION
|
85
101
|
- brightcove-api.gemspec
|
86
102
|
- lib/brightcove-api.rb
|
103
|
+
- test/fakeweb/create_video_response.json
|
87
104
|
- test/fakeweb/delete_video_response.json
|
88
105
|
- test/fakeweb/find_all_videos_response.json
|
106
|
+
- test/fakeweb/movie.mov
|
89
107
|
- test/helper.rb
|
90
108
|
- test/test_brightcove-api.rb
|
91
109
|
has_rdoc: true
|