Class: Sproutvideo::Video

Inherits:
Resource show all
Defined in:
lib/sproutvideo/video.rb

Class Method Summary collapse

Methods inherited from Resource

api_key, base_url, delete, get, post, put, upload

Class Method Details

.create(file_path = '', options = {}) ⇒ Object



4
5
6
# File 'lib/sproutvideo/video.rb', line 4

def self.create(file_path='', options={})
  upload("/videos", file_path, options)
end

.destroy(video_id, options = {}) ⇒ Object



33
34
35
# File 'lib/sproutvideo/video.rb', line 33

def self.destroy(video_id, options={})
  delete("/videos/#{video_id}", options)
end

.details(video_id, options = {}) ⇒ Object



21
22
23
# File 'lib/sproutvideo/video.rb', line 21

def self.details(video_id, options={})
  get("/videos/#{video_id}", options)
end

.list(options = {}) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/sproutvideo/video.rb', line 12

def self.list(options={})
  params = {
    :page => options.delete(:page) || 1,
    :per_page => options.delete(:per_page) || 25
  }
  params = params.merge(options)
  get("/videos", params)
end

.replace(video_id, file_path = '') ⇒ Object



8
9
10
# File 'lib/sproutvideo/video.rb', line 8

def self.replace(video_id, file_path='')
  upload("/videos/#{video_id}/replace", file_path)
end

.signed_embed_code(video_id, security_token, params = {}, expires = nil, protocol = 'http') ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/sproutvideo/video.rb', line 37

def self.signed_embed_code(video_id, security_token, params={}, expires=nil, protocol='http')
  host = 'videos.sproutvideo.com'
  path = "/embed/#{video_id}/#{security_token}"
  string_to_sign = "GET\n"
  string_to_sign << "#{host}\n"
  string_to_sign << "#{path}\n"

  expires = Time.now.to_i + 300 unless expires

  params = params.merge('expires' => expires)

  url_params = ""
  actual_url_params = ""
  params.sort_by{|k,_|k}.each do |key, value|
      value = value.to_s.strip
      url_params << "&#{key}=#{CGI::unescape(value)}"
      actual_url_params << "&#{key}=#{value}"
  end

  string_to_sign << "#{url_params}"

  digest = OpenSSL::Digest::Digest.new('sha1')
  b64_hmac = [OpenSSL::HMAC.digest(digest, Sproutvideo.api_key, string_to_sign)].pack("m").strip
  signature = CGI.escape(b64_hmac)

  "#{protocol}://#{host}#{path}?signature=#{signature}#{actual_url_params}"
end

.update(video_id, options = {}) ⇒ Object



25
26
27
# File 'lib/sproutvideo/video.rb', line 25

def self.update(video_id, options={})
  put("/videos/#{video_id}", options)
end

.upload_poster_frame(video_id, file_path = '') ⇒ Object



29
30
31
# File 'lib/sproutvideo/video.rb', line 29

def self.upload_poster_frame(video_id, file_path='')
  upload("/videos/#{video_id}", file_path, {:method => :PUT})
end