rbvimeo 0.1.0
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/History.txt +3 -0
- data/Manifest.txt +28 -0
- data/README.txt +46 -0
- data/Rakefile +20 -0
- data/bin/rbVimeo +15 -0
- data/lib/Comment.rb +14 -0
- data/lib/Thumbnail.rb +10 -0
- data/lib/User.rb +7 -0
- data/lib/Video.rb +135 -0
- data/lib/rbVimeo.rb +58 -0
- data/spec/Video_spec.rb +82 -0
- data/spec/XML/339189.comments.xml +155 -0
- data/spec/XML/339189.xml +28 -0
- data/spec/XML/not_found.xml +4 -0
- data/spec/rbVimeo_spec.rb +38 -0
- data/spec/sample_test_settings.yml +2 -0
- data/spec/spec_helper.rb +17 -0
- data/tasks/ann.rake +76 -0
- data/tasks/annotations.rake +22 -0
- data/tasks/bones.rake +40 -0
- data/tasks/doc.rake +48 -0
- data/tasks/gem.rake +116 -0
- data/tasks/manifest.rake +49 -0
- data/tasks/post_load.rake +32 -0
- data/tasks/rubyforge.rake +58 -0
- data/tasks/setup.rb +229 -0
- data/tasks/spec.rake +56 -0
- data/tasks/svn.rake +44 -0
- metadata +83 -0
data/History.txt
ADDED
data/Manifest.txt
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
History.txt
|
2
|
+
Manifest.txt
|
3
|
+
README.txt
|
4
|
+
Rakefile
|
5
|
+
bin/rbVimeo
|
6
|
+
lib/rbVimeo.rb
|
7
|
+
lib/Comment.rb
|
8
|
+
lib/Thumbnail.rb
|
9
|
+
lib/User.rb
|
10
|
+
lib/Video.rb
|
11
|
+
spec/rbVimeo_spec.rb
|
12
|
+
spec/sample_test_settings.yml
|
13
|
+
spec/Video_spec.rb
|
14
|
+
spec/XML/339189.comments.xml
|
15
|
+
spec/XML/339189.xml
|
16
|
+
spec/XML/not_found.xml
|
17
|
+
spec/spec_helper.rb
|
18
|
+
tasks/ann.rake
|
19
|
+
tasks/annotations.rake
|
20
|
+
tasks/bones.rake
|
21
|
+
tasks/doc.rake
|
22
|
+
tasks/gem.rake
|
23
|
+
tasks/manifest.rake
|
24
|
+
tasks/post_load.rake
|
25
|
+
tasks/rubyforge.rake
|
26
|
+
tasks/setup.rb
|
27
|
+
tasks/spec.rake
|
28
|
+
tasks/svn.rake
|
data/README.txt
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
rbVimeo
|
2
|
+
by Matt Pruitt
|
3
|
+
www.guitsaru.com
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
A ruby wrapper for the Vimeo API
|
8
|
+
|
9
|
+
== FEATURES/PROBLEMS:
|
10
|
+
|
11
|
+
This does not handle authentication. It only gets public videos from Vimeo.
|
12
|
+
|
13
|
+
== SYNOPSIS:
|
14
|
+
|
15
|
+
vimeo = RBVIMEO::Vimeo.new(api_key, api_signature)
|
16
|
+
vid = vimeo.video(video_id)
|
17
|
+
|
18
|
+
== INSTALL:
|
19
|
+
|
20
|
+
In order to run the specs, first make a test_settings.yml file (a sample is
|
21
|
+
provided) using your api key and api secret.
|
22
|
+
|
23
|
+
== LICENSE:
|
24
|
+
|
25
|
+
(The MIT License)
|
26
|
+
|
27
|
+
Copyright (c) 2008
|
28
|
+
|
29
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
30
|
+
a copy of this software and associated documentation files (the
|
31
|
+
'Software'), to deal in the Software without restriction, including
|
32
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
33
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
34
|
+
permit persons to whom the Software is furnished to do so, subject to
|
35
|
+
the following conditions:
|
36
|
+
|
37
|
+
The above copyright notice and this permission notice shall be
|
38
|
+
included in all copies or substantial portions of the Software.
|
39
|
+
|
40
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
41
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
42
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
43
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
44
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
45
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
46
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# Look in the tasks/setup.rb file for the various options that can be
|
2
|
+
# configured in this Rakefile. The .rake files in the tasks directory
|
3
|
+
# are where the options are used.
|
4
|
+
|
5
|
+
load 'tasks/setup.rb'
|
6
|
+
|
7
|
+
ensure_in_path 'lib'
|
8
|
+
require 'rbVimeo'
|
9
|
+
|
10
|
+
task :default => 'spec:run'
|
11
|
+
|
12
|
+
PROJ.name = 'rbvimeo'
|
13
|
+
PROJ.authors = 'Matt Pruitt'
|
14
|
+
PROJ.email = 'guitsaru@gmail.com'
|
15
|
+
PROJ.url = 'www.guitsaru.com'
|
16
|
+
PROJ.rubyforge_name = 'rbvimeo'
|
17
|
+
PROJ.version = '0.1.0'
|
18
|
+
PROJ.spec_opts << '--color'
|
19
|
+
|
20
|
+
# EOF
|
data/bin/rbVimeo
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.expand_path(
|
4
|
+
File.join(File.dirname(__FILE__), '..', 'lib', 'rbVimeo'))
|
5
|
+
require File.expand_path(
|
6
|
+
File.join(File.dirname(__FILE__), '..', 'lib', 'Video'))
|
7
|
+
require File.expand_path(
|
8
|
+
File.join(File.dirname(__FILE__), '..', 'lib', 'Comment'))
|
9
|
+
require File.expand_path(
|
10
|
+
File.join(File.dirname(__FILE__), '..', 'lib', 'Thumbnail'))
|
11
|
+
require File.expand_path(
|
12
|
+
File.join(File.dirname(__FILE__), '..', 'lib', 'User'))
|
13
|
+
# Put your code here
|
14
|
+
|
15
|
+
# EOF
|
data/lib/Comment.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
module RBVIMEO
|
2
|
+
class Comment
|
3
|
+
attr_accessor :id, :author, :authorname, :date, :url, :text, :portraits
|
4
|
+
def initialize(id, author, authorname, date, url, text, portraits)
|
5
|
+
@id = id
|
6
|
+
@author = author
|
7
|
+
@authorname = authorname
|
8
|
+
@date = date
|
9
|
+
@url = url
|
10
|
+
@text = text.chomp.strip
|
11
|
+
@portraits = portraits
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/Thumbnail.rb
ADDED
data/lib/User.rb
ADDED
data/lib/Video.rb
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'rexml/document'
|
3
|
+
require File.join(File.dirname(__FILE__), %w[rbVimeo])
|
4
|
+
require File.join(File.dirname(__FILE__), %w[User])
|
5
|
+
require File.join(File.dirname(__FILE__), %w[Thumbnail])
|
6
|
+
require File.join(File.dirname(__FILE__), %w[Comment])
|
7
|
+
|
8
|
+
module RBVIMEO
|
9
|
+
class Video
|
10
|
+
attr_reader :id, :title, :caption, :upload_date, :likes, :plays
|
11
|
+
attr_reader :num_comments, :width, :height, :owner, :tags, :url
|
12
|
+
attr_reader :thumbs, :comments
|
13
|
+
|
14
|
+
# Fetches data about a video from the Vimeo site
|
15
|
+
# id is the id of the the Vimeo video
|
16
|
+
# vimeo is an instance of RBVIMEO::Vimeo
|
17
|
+
#
|
18
|
+
# To load a movie with vimeo id 339189:
|
19
|
+
# @vimeo = RBVIMEO::Vimeo.new api_key, api_secret
|
20
|
+
# video = RBVIMEO::Video.new 339189, @vimeo
|
21
|
+
def initialize id, vimeo, xml=nil
|
22
|
+
@thumbs = Array.new
|
23
|
+
@comments = Array.new
|
24
|
+
@id = id
|
25
|
+
url = vimeo.generate_url({"method" => "vimeo.videos.getInfo",
|
26
|
+
"video_id" => id, "api_key" => vimeo.api_key}, "read")
|
27
|
+
unless xml
|
28
|
+
#does not get covered by specs because we get an internal xml file
|
29
|
+
xml_data = Net::HTTP.get_response(URI.parse(url)).body
|
30
|
+
else
|
31
|
+
xml_data = File.open(xml)
|
32
|
+
end
|
33
|
+
xml_doc = REXML::Document.new(xml_data)
|
34
|
+
|
35
|
+
return @id = -1 if parse_xml(xml_doc).nil?
|
36
|
+
get_comments id, vimeo, xml
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
# Parses data using the xml recieved from the Vimeo REST API
|
41
|
+
# Should not need to be called by anything other than the initialize method
|
42
|
+
def parse_xml xml_doc
|
43
|
+
if xml_doc.elements["rsp/video/title"].nil?
|
44
|
+
return nil
|
45
|
+
else
|
46
|
+
@title = xml_doc.elements["rsp/video/title"].text
|
47
|
+
@id = id
|
48
|
+
@caption = xml_doc.elements["rsp/video/caption"].text
|
49
|
+
@upload_date = xml_doc.elements["rsp/video/upload_date"].text
|
50
|
+
@likes = xml_doc.elements["rsp/video/number_of_likes"].text.to_i
|
51
|
+
@plays = xml_doc.elements["rsp/video/number_of_plays"].text.to_i
|
52
|
+
@width = xml_doc.elements["rsp/video/width"].text.to_i
|
53
|
+
@height = xml_doc.elements["rsp/video/height"].text.to_i
|
54
|
+
@num_comments =
|
55
|
+
xml_doc.elements["rsp/video/number_of_comments"].text.to_i
|
56
|
+
@owner = User.new
|
57
|
+
@owner.id = xml_doc.elements["rsp/video/owner"].attributes["id"].to_i
|
58
|
+
@owner.username =
|
59
|
+
xml_doc.elements["rsp/video/owner"].attributes["username"]
|
60
|
+
@owner.fullname =
|
61
|
+
xml_doc.elements["rsp/video/owner"].attributes["fullname"]
|
62
|
+
@url = xml_doc.elements["rsp/video/urls/url"].text
|
63
|
+
|
64
|
+
xml_doc.elements.each('rsp/video/thumbnails/thumbnail') do |thumb|
|
65
|
+
url = thumb.text
|
66
|
+
w = thumb.attributes["width"].to_i
|
67
|
+
h = thumb.attributes["height"].to_i
|
68
|
+
thumbnail = Thumbnail.new(url, w, h)
|
69
|
+
@thumbs << thumbnail
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# Fetches the comments for the specified Video
|
75
|
+
# id is the id of the Vimeo video
|
76
|
+
# vimeo is an instance of RBVIMEO::Vimeo
|
77
|
+
# returns an Array of comments
|
78
|
+
#
|
79
|
+
# To load a movie with vimeo id 339189:
|
80
|
+
# @vimeo = RBVIMEO::Vimeo.new api_key, api_secret
|
81
|
+
# comments = video.comments 339189, @vimeo
|
82
|
+
def get_comments id, vimeo, xml=nil
|
83
|
+
comments = Array.new
|
84
|
+
url = vimeo.generate_url({"method" => "vimeo.videos.comments.getList",
|
85
|
+
"video_id" => id, "api_key" => vimeo.api_key}, "read")
|
86
|
+
unless xml
|
87
|
+
#does not get covered by specs because we get an internal xml file
|
88
|
+
xml_data = Net::HTTP.get_response(URI.parse(url)).body
|
89
|
+
else
|
90
|
+
xml_data = File.open(File.join(File.dirname(xml), File.basename(xml, '.xml')+'.comments.xml'))
|
91
|
+
end
|
92
|
+
xml_doc = REXML::Document.new(xml_data)
|
93
|
+
|
94
|
+
xml_doc.elements.each('rsp/comments/comment') do |comment|
|
95
|
+
id = comment.attributes["id"].to_i
|
96
|
+
author = comment.attributes["author"]
|
97
|
+
authorname = comment.attributes["authorname"]
|
98
|
+
date = comment.attributes["datecreate"]
|
99
|
+
url = comment.attributes["permalink"]
|
100
|
+
text = comment.text
|
101
|
+
@portraits = Array.new
|
102
|
+
xml_doc.elements.each('rsp/comments/comment/portraits/portrait') do |thumb|
|
103
|
+
portrait_url = thumb.text
|
104
|
+
w = thumb.attributes["width"].to_i
|
105
|
+
h = thumb.attributes["height"].to_i
|
106
|
+
thumbnail = Thumbnail.new(portrait_url, w, h)
|
107
|
+
@portraits << thumbnail
|
108
|
+
end
|
109
|
+
com = Comment.new(id, author, authorname, date, url, text, @portraits)
|
110
|
+
@comments << com
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# Returns the code to embed the video
|
115
|
+
def embed width, height
|
116
|
+
w = width.to_s
|
117
|
+
h = height.to_s
|
118
|
+
id = @id.to_s
|
119
|
+
string = ''
|
120
|
+
string += '<object type="application/x-shockwave-flash" width='
|
121
|
+
string += w + '" height="' + h + '"'
|
122
|
+
string += 'data="http://www.vimeo.com/moogaloop.swf?clip_id=' + id
|
123
|
+
string += '&server=www.vimeo.com&fullscreen=0&show_title=0'
|
124
|
+
string += '&show_byline=0&showportrait=0&color=00ADEF">'
|
125
|
+
string += '<param name="quality" value="best" />'
|
126
|
+
string += '<param name="allowfullscreen" value="false" />'
|
127
|
+
string += '<param name="scale" value="showAll" />'
|
128
|
+
string += '<param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id='
|
129
|
+
string += id + '&server=www.vimeo.com&fullscreen=0&'
|
130
|
+
string += 'show_title=0&show_byline=0&showportrait=0&color=00ADEF" /></object>'
|
131
|
+
|
132
|
+
return string
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
data/lib/rbVimeo.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
# Matt Pruitt
|
2
|
+
# Ruby Library for working with Vimeo
|
3
|
+
# Based on the sample PHP Vimeo API
|
4
|
+
|
5
|
+
require 'digest/md5'
|
6
|
+
require 'net/http'
|
7
|
+
require 'rexml/document'
|
8
|
+
require File.join(File.dirname(__FILE__), %w[Video])
|
9
|
+
|
10
|
+
module RBVIMEO
|
11
|
+
class Vimeo
|
12
|
+
attr_accessor :api_key, :api_secret
|
13
|
+
|
14
|
+
@@API_REST_URL = "http://www.vimeo.com/api/rest"
|
15
|
+
@@API_AUTH_URL = "http://www.vimeo.com/services/auth/"
|
16
|
+
@@API_UPLOAD_URL = "http://www.vimeo.com/services/upload/"
|
17
|
+
# api_key and api_secret should both be generated on www.vimeo.com
|
18
|
+
def initialize api_key, api_secret
|
19
|
+
@api_key = api_key
|
20
|
+
@api_secret = api_secret
|
21
|
+
end
|
22
|
+
|
23
|
+
# @vimeo.generate_url({"method" => "vimeo.videos.getInfo", "read",
|
24
|
+
# "video_id" => "339189", "api_key" => @vimeo.api_key})
|
25
|
+
# This example returns a url to the xml for the Vimeo video with id 339189
|
26
|
+
def generate_url parameters, permissions = nil
|
27
|
+
url = @@API_REST_URL + "?api_key=" + @api_key
|
28
|
+
params = parameters.sort
|
29
|
+
params.each do |param|
|
30
|
+
url += "&" + param[0].to_s + "=" + param[1].to_s unless param[0].to_s == "api_key"
|
31
|
+
end
|
32
|
+
url += "&api_sig=" + generate_signature(parameters)
|
33
|
+
return url
|
34
|
+
end
|
35
|
+
|
36
|
+
# parameters is a hash
|
37
|
+
def generate_signature parameters
|
38
|
+
temp = ''
|
39
|
+
params = parameters.sort
|
40
|
+
params.each do |array|
|
41
|
+
temp += array[0].to_s + array[1].to_s
|
42
|
+
end
|
43
|
+
signature = @api_secret + temp
|
44
|
+
Digest::MD5.hexdigest(signature)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Provides easier access to RBVIMEO::Video
|
48
|
+
# video = @vimeo.video 339189
|
49
|
+
def video id, xml=nil
|
50
|
+
vid = Video.new(id, self, xml)
|
51
|
+
return nil if vid.id == -1
|
52
|
+
return vid
|
53
|
+
end
|
54
|
+
def user
|
55
|
+
return User.new
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/spec/Video_spec.rb
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
2
|
+
require File.join(File.dirname(__FILE__), "../lib/rbVimeo.rb")
|
3
|
+
require File.join(File.dirname(__FILE__), "../lib/Video.rb")
|
4
|
+
require "yaml"
|
5
|
+
|
6
|
+
include RBVIMEO
|
7
|
+
|
8
|
+
describe Video, "initialization" do
|
9
|
+
before(:all) do
|
10
|
+
test_settings_file = File.join(File.dirname(__FILE__), %w[test_settings.yml])
|
11
|
+
test_video_xml_file = File.join(File.dirname(__FILE__), %w[XML/339189.xml])
|
12
|
+
test_settings = YAML.load_file(test_settings_file)
|
13
|
+
@api_key = test_settings['api_key']
|
14
|
+
@api_secret = test_settings['api_secret']
|
15
|
+
@vimeo = RBVIMEO::Vimeo.new(@api_key, @api_secret)
|
16
|
+
@vid = @vimeo.video(339189, test_video_xml_file)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should have title" do
|
20
|
+
@vid.title.should eql("Upload Tutorial")
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should have caption" do
|
24
|
+
@vid.caption.should eql("This is a tutorial about our new Uploader. Enjoy!")
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should have upload date" do
|
28
|
+
@vid.upload_date.should eql("2007-10-12 16:30:32")
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should have likes" do
|
32
|
+
@vid.likes.should eql(174)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should have plays" do
|
36
|
+
@vid.plays.should eql(515407)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should have dimensions" do
|
40
|
+
@vid.width.should eql(506)
|
41
|
+
@vid.height.should eql(380)
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should have comments" do
|
45
|
+
@vid.num_comments.should eql(34)
|
46
|
+
@vid.comments[0].id.should eql(265313)
|
47
|
+
@vid.comments[0].author.should eql("ctd3")
|
48
|
+
@vid.comments[0].authorname.should eql("CTD3")
|
49
|
+
@vid.comments[0].date.should eql("2007-10-12 17:47:13")
|
50
|
+
@vid.comments[0].url.should eql("http://www.vimeo.com/339189#comment_265313")
|
51
|
+
@vid.comments[0].text.should eql("Sure is! Great changes!")
|
52
|
+
@vid.comments[0].portraits[0].url.should eql("http://80.media.vimeo.com/d1/5/35/44/42/portrait-35444268.jpg")
|
53
|
+
@vid.comments[0].portraits[0].width.should eql(24)
|
54
|
+
@vid.comments[0].portraits[0].height.should eql(24)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should have owner" do
|
58
|
+
@vid.owner.id.should eql(152184)
|
59
|
+
@vid.owner.username.should eql("staff")
|
60
|
+
@vid.owner.fullname.should eql("Vimeo Staff")
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should have url" do
|
64
|
+
@vid.url.should eql("http://www.vimeo.com/339189/l:app-230")
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should have thumbnails" do
|
68
|
+
@vid.thumbs[0].url.should eql("http://40.media.vimeo.com/d1/5/36/63/98/thumbnail-36639824.jpg")
|
69
|
+
@vid.thumbs[0].width.should eql(96)
|
70
|
+
@vid.thumbs[0].height.should eql(72)
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should return nil on nonexistent video" do
|
74
|
+
not_found_xml_file = File.join(File.dirname(__FILE__), %w[XML/not_found.xml])
|
75
|
+
video = @vimeo.video(99999999999, not_found_xml_file)
|
76
|
+
video.should be_nil
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should give an embed link" do
|
80
|
+
@vid.embed(240, 480).should_not be_nil
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,155 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<rsp stat="ok" generated_in="0.0662">
|
3
|
+
<comments page="1" perpage="25" video_id="339189">
|
4
|
+
<comment id="265313" author="ctd3" authorname="CTD3" datecreate="2007-10-12 17:47:13" permalink="http://www.vimeo.com/339189#comment_265313">Sure is! Great changes!
|
5
|
+
<portraits>
|
6
|
+
<portrait width="24" height="24">http://80.media.vimeo.com/d1/5/35/44/42/portrait-35444268.jpg</portrait>
|
7
|
+
<portrait width="75" height="75">http://10.media.vimeo.com/d1/5/35/41/36/portrait-35413631.jpg</portrait>
|
8
|
+
<portrait width="300" height="300">http://30.media.vimeo.com/d1/5/35/46/06/portrait-35460603.jpg</portrait>
|
9
|
+
</portraits></comment>
|
10
|
+
<comment id="265317" author="darkmotion" authorname="darkmotion" datecreate="2007-10-12 17:50:45" permalink="http://www.vimeo.com/339189#comment_265317">tags would be so much nicer in the flickr system where you juts slap in spaces. For multi word items you can single or double quote the suckers
|
11
|
+
<portraits>
|
12
|
+
<portrait width="24" height="24">http://90.media.vimeo.com/d1/5/29/89/62/portrait-29896269.jpg</portrait>
|
13
|
+
<portrait width="75" height="75">http://20.media.vimeo.com/d1/5/29/40/38/portrait-29403842.jpg</portrait>
|
14
|
+
<portrait width="300" height="300">http://30.media.vimeo.com/d1/5/30/18/98/portrait-30189803.jpg</portrait>
|
15
|
+
</portraits></comment>
|
16
|
+
<comment id="265392" author="dunno" authorname="dunno" datecreate="2007-10-12 20:02:47" reply_to_comment_id="265317" permalink="http://www.vimeo.com/339189#comment_265392">Really? I find the commas to be way easier than the quotes. I like it as is.
|
17
|
+
<portraits>
|
18
|
+
<portrait width="24" height="24">http://80.media.vimeo.com/d1/5/29/52/72/portrait-29527278.jpg</portrait>
|
19
|
+
<portrait width="75" height="75">http://40.media.vimeo.com/d1/5/29/39/99/portrait-29399974.jpg</portrait>
|
20
|
+
<portrait width="300" height="300">http://10.media.vimeo.com/d1/5/29/60/94/portrait-29609431.jpg</portrait>
|
21
|
+
</portraits></comment>
|
22
|
+
<comment id="265415" author="darkmotion" authorname="darkmotion" datecreate="2007-10-12 20:50:28" reply_to_comment_id="265317" permalink="http://www.vimeo.com/339189#comment_265415">Well to me it feels more natural to type keywords with spaces between then ( I guess it's because I'm used to flickr and a bunch of others which use that format) Either way, the tags are still neat :)
|
23
|
+
<portraits>
|
24
|
+
<portrait width="24" height="24">http://90.media.vimeo.com/d1/5/29/89/62/portrait-29896269.jpg</portrait>
|
25
|
+
<portrait width="75" height="75">http://20.media.vimeo.com/d1/5/29/40/38/portrait-29403842.jpg</portrait>
|
26
|
+
<portrait width="300" height="300">http://30.media.vimeo.com/d1/5/30/18/98/portrait-30189803.jpg</portrait>
|
27
|
+
</portraits></comment>
|
28
|
+
<comment id="265318" author="benm" authorname="Ben Millett" datecreate="2007-10-12 17:51:10" permalink="http://www.vimeo.com/339189#comment_265318">So, are you going to change your upload email so that you don't get some random videos uploaded? Nice tutorial. The upload page was daunting at first, but I like it now.
|
29
|
+
<portraits>
|
30
|
+
<portrait width="24" height="24">http://10.media.vimeo.com/d1/5/69/34/6934500/6934500_24.jpg</portrait>
|
31
|
+
<portrait width="75" height="75">http://50.media.vimeo.com/d1/5/69/34/6934500/6934500_75.jpg</portrait>
|
32
|
+
<portrait width="300" height="300">http://90.media.vimeo.com/d1/5/69/34/6934500/6934500_300.jpg</portrait>
|
33
|
+
</portraits></comment>
|
34
|
+
<comment id="265990" author="blakewhitman" authorname="Blake Whitman" datecreate="2007-10-13 21:29:07" reply_to_comment_id="265318" permalink="http://www.vimeo.com/339189#comment_265990">i'm looking forward to them.
|
35
|
+
<portraits>
|
36
|
+
<portrait width="24" height="24">http://70.media.vimeo.com/d1/5/41/92/portrait-4192877.jpg</portrait>
|
37
|
+
<portrait width="75" height="75">http://40.media.vimeo.com/d1/5/41/92/portrait-4192854.jpg</portrait>
|
38
|
+
<portrait width="300" height="300">http://90.media.vimeo.com/d1/5/41/92/portrait-4192849.jpg</portrait>
|
39
|
+
</portraits></comment>
|
40
|
+
<comment id="265341" author="user183977" authorname="okaysamurai" datecreate="2007-10-12 18:27:47" permalink="http://www.vimeo.com/339189#comment_265341">The new uploader is really nicely done. Vimeo has always been great about never leaving the user waiting around and guessing what to do. Great work!
|
41
|
+
<portraits>
|
42
|
+
<portrait width="24" height="24">http://20.media.vimeo.com/d1/5/81/83/8183509/8183509_24.jpg</portrait>
|
43
|
+
<portrait width="75" height="75">http://10.media.vimeo.com/d1/5/81/83/8183509/8183509_75.jpg</portrait>
|
44
|
+
<portrait width="300" height="300">http://60.media.vimeo.com/d1/5/81/83/8183509/8183509_300.jpg</portrait>
|
45
|
+
</portraits></comment>
|
46
|
+
<comment id="265382" author="benjamin" authorname="Ben" datecreate="2007-10-12 19:48:34" permalink="http://www.vimeo.com/339189#comment_265382">I love the new uploader! it's very accurate! and it works in safari 3
|
47
|
+
<portraits>
|
48
|
+
<portrait width="24" height="24">http://80.media.vimeo.com/d1/5/13/50/15/13501546/13501546_24.jpg</portrait>
|
49
|
+
<portrait width="75" height="75">http://50.media.vimeo.com/d1/5/13/50/15/13501546/13501546_75.jpg</portrait>
|
50
|
+
<portrait width="300" height="300">http://90.media.vimeo.com/d1/5/13/50/15/13501546/13501546_300.jpg</portrait>
|
51
|
+
</portraits></comment>
|
52
|
+
<comment id="265383" author="erick" authorname="Erick C." datecreate="2007-10-12 19:52:09" permalink="http://www.vimeo.com/339189#comment_265383">i love hearing the typing in these tutorials. such a nice sound. :)
|
53
|
+
<portraits>
|
54
|
+
<portrait width="24" height="24">http://60.media.vimeo.com/d1/5/96/61/9661145/9661145_24.jpg</portrait>
|
55
|
+
<portrait width="75" height="75">http://50.media.vimeo.com/d1/5/96/61/9661145/9661145_75.jpg</portrait>
|
56
|
+
<portrait width="300" height="300">http://00.media.vimeo.com/d1/5/96/61/9661145/9661145_300.jpg</portrait>
|
57
|
+
</portraits></comment>
|
58
|
+
<comment id="265403" author="vfowler" authorname="Vernon Fowler" datecreate="2007-10-12 20:31:15" permalink="http://www.vimeo.com/339189#comment_265403">Yes indeed! Vimeo is cool. Great new uploader. I love all the new changes you guys and girls have made recently. Keep up the super work.
|
59
|
+
<portraits>
|
60
|
+
<portrait width="24" height="24">http://30.media.vimeo.com/d1/5/35/21/portrait-3521153.jpg</portrait>
|
61
|
+
<portrait width="75" height="75">http://70.media.vimeo.com/d1/5/35/21/portrait-3521147.jpg</portrait>
|
62
|
+
<portrait width="300" height="300">http://30.media.vimeo.com/d1/5/35/21/portrait-3521143.jpg</portrait>
|
63
|
+
</portraits></comment>
|
64
|
+
<comment id="265588" author="charliesteadman" authorname="charliesteadman" datecreate="2007-10-13 06:53:56" permalink="http://www.vimeo.com/339189#comment_265588">I love the people chooser. Passwords? Sccchhhhwwwweeeeeet!
|
65
|
+
<portraits>
|
66
|
+
<portrait width="24" height="24">http://60.media.vimeo.com/d1/5/39/03/14/portrait-39031466.jpg</portrait>
|
67
|
+
<portrait width="75" height="75">http://00.media.vimeo.com/d1/5/39/03/17/portrait-39031730.jpg</portrait>
|
68
|
+
<portrait width="300" height="300">http://50.media.vimeo.com/d1/5/39/15/40/portrait-39154065.jpg</portrait>
|
69
|
+
</portraits></comment>
|
70
|
+
<comment id="265615" author="talkingtonobody" authorname="talkingtonobody" datecreate="2007-10-13 08:28:38" permalink="http://www.vimeo.com/339189#comment_265615">mmm is good
|
71
|
+
<portraits>
|
72
|
+
<portrait width="24" height="24">http://40.media.vimeo.com/d1/5/46/65/portrait-4665324.jpg</portrait>
|
73
|
+
<portrait width="75" height="75">http://20.media.vimeo.com/d1/5/46/65/portrait-4665312.jpg</portrait>
|
74
|
+
<portrait width="300" height="300">http://00.media.vimeo.com/d1/5/46/65/portrait-4665300.jpg</portrait>
|
75
|
+
</portraits></comment>
|
76
|
+
<comment id="265653" author="benm" authorname="Ben Millett" datecreate="2007-10-13 10:20:13" permalink="http://www.vimeo.com/339189#comment_265653">How does one now indicate a fulfilled request?
|
77
|
+
<portraits>
|
78
|
+
<portrait width="24" height="24">http://10.media.vimeo.com/d1/5/69/34/6934500/6934500_24.jpg</portrait>
|
79
|
+
<portrait width="75" height="75">http://50.media.vimeo.com/d1/5/69/34/6934500/6934500_75.jpg</portrait>
|
80
|
+
<portrait width="300" height="300">http://90.media.vimeo.com/d1/5/69/34/6934500/6934500_300.jpg</portrait>
|
81
|
+
</portraits></comment>
|
82
|
+
<comment id="265709" author="clicknscroll" authorname="H." datecreate="2007-10-13 12:31:27" permalink="http://www.vimeo.com/339189#comment_265709">hadn't seen this. sweeeet.
|
83
|
+
<portraits>
|
84
|
+
<portrait width="24" height="24">http://90.media.vimeo.com/d1/5/10/18/99/10189967/10189967_24.jpg</portrait>
|
85
|
+
<portrait width="75" height="75">http://50.media.vimeo.com/d1/5/10/18/99/10189967/10189967_75.jpg</portrait>
|
86
|
+
<portrait width="300" height="300">http://90.media.vimeo.com/d1/5/10/18/99/10189967/10189967_300.jpg</portrait>
|
87
|
+
</portraits></comment>
|
88
|
+
<comment id="265902" author="mikehedge" authorname="mikehedge" datecreate="2007-10-13 19:08:03" permalink="http://www.vimeo.com/339189#comment_265902">genius!
|
89
|
+
<portraits>
|
90
|
+
<portrait width="24" height="24">http://90.media.vimeo.com/d1/5/43/53/portrait-4353149.jpg</portrait>
|
91
|
+
<portrait width="75" height="75">http://90.media.vimeo.com/d1/5/43/53/portrait-4353139.jpg</portrait>
|
92
|
+
<portrait width="300" height="300">http://20.media.vimeo.com/d1/5/43/53/portrait-4353132.jpg</portrait>
|
93
|
+
</portraits></comment>
|
94
|
+
<comment id="265986" author="soxiam" authorname="Soxiam" datecreate="2007-10-13 21:24:59" permalink="http://www.vimeo.com/339189#comment_265986">Thanks for making this tutorial. It's really wonderfully produced. Simple and easy to understand. We need to add this (or a link to it) from our upload page. Pronto!
|
95
|
+
<portraits>
|
96
|
+
<portrait width="24" height="24">http://60.media.vimeo.com/d1/5/68/80/6880523/6880523_24.jpg</portrait>
|
97
|
+
<portrait width="75" height="75">http://90.media.vimeo.com/d1/5/68/80/6880523/6880523_75.jpg</portrait>
|
98
|
+
<portrait width="300" height="300">http://30.media.vimeo.com/d1/5/68/80/6880523/6880523_300.jpg</portrait>
|
99
|
+
</portraits></comment>
|
100
|
+
<comment id="265989" author="blakewhitman" authorname="Blake Whitman" datecreate="2007-10-13 21:28:36" reply_to_comment_id="265986" permalink="http://www.vimeo.com/339189#comment_265989">Justin was supposed to do it on friday... might have slipped through the cracks.
|
101
|
+
<portraits>
|
102
|
+
<portrait width="24" height="24">http://70.media.vimeo.com/d1/5/41/92/portrait-4192877.jpg</portrait>
|
103
|
+
<portrait width="75" height="75">http://40.media.vimeo.com/d1/5/41/92/portrait-4192854.jpg</portrait>
|
104
|
+
<portrait width="300" height="300">http://90.media.vimeo.com/d1/5/41/92/portrait-4192849.jpg</portrait>
|
105
|
+
</portraits></comment>
|
106
|
+
<comment id="267196" author="islebehere" authorname="islebehere" datecreate="2007-10-15 14:03:51" permalink="http://www.vimeo.com/339189#comment_267196">isn't Andrea an inspiration to us all...?? lol
|
107
|
+
<portraits>
|
108
|
+
<portrait width="24" height="24">http://30.media.vimeo.com/d1/5/34/42/portrait-3442653.jpg</portrait>
|
109
|
+
<portrait width="75" height="75">http://70.media.vimeo.com/d1/5/34/42/portrait-3442647.jpg</portrait>
|
110
|
+
<portrait width="300" height="300">http://30.media.vimeo.com/d1/5/34/42/portrait-3442643.jpg</portrait>
|
111
|
+
</portraits></comment>
|
112
|
+
<comment id="268951" author="andreaallen" authorname="AA" datecreate="2007-10-17 16:25:23" reply_to_comment_id="267196" permalink="http://www.vimeo.com/339189#comment_268951">My butt was the inspiration.
|
113
|
+
<portraits>
|
114
|
+
<portrait width="24" height="24">http://60.media.vimeo.com/d1/5/34/96/portrait-3496566.jpg</portrait>
|
115
|
+
<portrait width="75" height="75">http://70.media.vimeo.com/d1/5/34/96/portrait-3496557.jpg</portrait>
|
116
|
+
<portrait width="300" height="300">http://30.media.vimeo.com/d1/5/34/96/portrait-3496553.jpg</portrait>
|
117
|
+
</portraits></comment>
|
118
|
+
<comment id="272747" author="jessespurlin" authorname="Jesse Spurlin" datecreate="2007-10-23 06:44:53" permalink="http://www.vimeo.com/339189#comment_272747">surely everyone who learns how to upload to vimeo will now know audrey from denton, tx. amazing.
|
119
|
+
<portraits>
|
120
|
+
<portrait width="24" height="24">http://storage14.vimeo.com/46/54/99/46549981/46549981_24.jpg</portrait>
|
121
|
+
<portrait width="75" height="75">http://storage10.vimeo.com/46/54/99/46549981/46549981_75.jpg</portrait>
|
122
|
+
<portrait width="300" height="300">http://storage10.vimeo.com/46/54/99/46549981/46549981_300.jpg</portrait>
|
123
|
+
</portraits></comment>
|
124
|
+
<comment id="276940" author="user150781" authorname="cms3717" datecreate="2007-10-29 21:20:58" permalink="http://www.vimeo.com/339189#comment_276940">doesnt work for me, progress bar flies by on a 77 meg fie and hangs on 100 percent, im bummed
|
125
|
+
<portraits>
|
126
|
+
<portrait width="24" height="24">http://30.media.vimeo.com/d1/5/45/00/65/portrait-45006593.jpg</portrait>
|
127
|
+
<portrait width="75" height="75">http://50.media.vimeo.com/d1/5/33/48/portrait-3348735.jpg</portrait>
|
128
|
+
<portrait width="300" height="300">http://50.media.vimeo.com/d1/5/32/23/portrait-3223235.jpg</portrait>
|
129
|
+
</portraits></comment>
|
130
|
+
<comment id="281334" author="pandapoo" authorname="Georgie" datecreate="2007-11-05 05:22:25" permalink="http://www.vimeo.com/339189#comment_281334">Vimeo IS cool! :)
|
131
|
+
<portraits>
|
132
|
+
<portrait width="24" height="24">http://50.media.vimeo.com/d1/5/30/41/08/portrait-30410815.jpg</portrait>
|
133
|
+
<portrait width="75" height="75">http://90.media.vimeo.com/d1/5/30/41/08/portrait-30410879.jpg</portrait>
|
134
|
+
<portrait width="300" height="300">http://30.media.vimeo.com/d1/5/30/45/57/portrait-30455703.jpg</portrait>
|
135
|
+
</portraits></comment>
|
136
|
+
<comment id="286997" author="user295526" authorname="foxy bigmama" datecreate="2007-11-13 17:34:30" permalink="http://www.vimeo.com/339189#comment_286997">i found the uploader tutorial easy to learn, this is my first page on the site so bear wit me i have yet to experience the results
|
137
|
+
<portraits>
|
138
|
+
<portrait width="24" height="24">http://70.media.vimeo.com/d1/5/14/68/49/14684974/14684974_24.jpg</portrait>
|
139
|
+
<portrait width="75" height="75">http://40.media.vimeo.com/d1/5/14/68/49/14684974/14684974_75.jpg</portrait>
|
140
|
+
<portrait width="300" height="300">http://70.media.vimeo.com/d1/5/14/68/49/14684974/14684974_300.jpg</portrait>
|
141
|
+
</portraits></comment>
|
142
|
+
<comment id="288784" author="user119378" authorname="akumal" datecreate="2007-11-16 17:57:22" permalink="http://www.vimeo.com/339189#comment_288784">amazing, you're kicking youtube's butt
|
143
|
+
<portraits>
|
144
|
+
<portrait width="24" height="24">http://30.media.vimeo.com/d1/5/32/24/portrait-3224873.jpg</portrait>
|
145
|
+
<portrait width="75" height="75">http://50.media.vimeo.com/d1/5/33/54/portrait-3354625.jpg</portrait>
|
146
|
+
<portrait width="300" height="300">http://10.media.vimeo.com/d1/5/32/65/portrait-3265591.jpg</portrait>
|
147
|
+
</portraits></comment>
|
148
|
+
<comment id="296793" author="user306709" authorname="toltub" datecreate="2007-11-30 21:07:01" permalink="http://www.vimeo.com/339189#comment_296793">Deberian crear acesos para subir video por FTP, ya que e tratado muchas veces de subir mis videos y tengo que paagar la pc, o algo pasa.
|
149
|
+
<portraits>
|
150
|
+
<portrait width="24" height="24">http://70.media.vimeo.com/d1/portraits/defaults/d.24.jpg</portrait>
|
151
|
+
<portrait width="75" height="75">http://70.media.vimeo.com/d1/portraits/defaults/d.75.jpg</portrait>
|
152
|
+
<portrait width="300" height="300">http://80.media.vimeo.com/d1/portraits/defaults/d.300.jpg</portrait>
|
153
|
+
</portraits></comment>
|
154
|
+
</comments>
|
155
|
+
</rsp>
|
data/spec/XML/339189.xml
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<rsp stat="ok" generated_in="0.0191">
|
3
|
+
<video id="339189" privacy="anybody" is_uploading="0" is_transcoding="0" is_hd="1" is_favorite="1">
|
4
|
+
<title>Upload Tutorial</title>
|
5
|
+
<caption>This is a tutorial about our new Uploader. Enjoy!</caption>
|
6
|
+
<upload_date>2007-10-12 16:30:32</upload_date>
|
7
|
+
<number_of_likes>174</number_of_likes>
|
8
|
+
<number_of_plays>515407</number_of_plays>
|
9
|
+
<number_of_comments>34</number_of_comments>
|
10
|
+
<width>506</width>
|
11
|
+
<height>380</height>
|
12
|
+
<owner nsid="152184" id="152184" username="staff" fullname="Vimeo Staff"/>
|
13
|
+
<tags>
|
14
|
+
<tag id="918189" author="152184" raw="vimeo">vimeo</tag>
|
15
|
+
<tag id="918190" author="152184" raw="tutorial">tutorial</tag>
|
16
|
+
<tag id="918191" author="152184" raw="upload">upload</tag>
|
17
|
+
<tag id="918192" author="152184" raw="uploader">uploader</tag>
|
18
|
+
</tags>
|
19
|
+
<urls>
|
20
|
+
<url type="videopage">http://www.vimeo.com/339189/l:app-230</url>
|
21
|
+
</urls>
|
22
|
+
<thumbnails>
|
23
|
+
<thumbnail width="96" height="72">http://40.media.vimeo.com/d1/5/36/63/98/thumbnail-36639824.jpg</thumbnail>
|
24
|
+
<thumbnail width="200" height="150">http://40.media.vimeo.com/d1/5/29/49/99/thumbnail-29499974.jpg</thumbnail>
|
25
|
+
<thumbnail width="460" height="345">http://80.media.vimeo.com/d1/5/29/49/01/thumbnail-29490188.jpg</thumbnail>
|
26
|
+
</thumbnails>
|
27
|
+
</video>
|
28
|
+
</rsp>
|