rbvimeo 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|