getvideo 0.0.4 → 0.0.5

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.
@@ -1,3 +1,3 @@
1
1
  module Getvideo
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -7,18 +7,19 @@ end
7
7
 
8
8
  module Getvideo
9
9
  class Video
10
- attr_reader :url, :response
10
+ attr_reader :url
11
11
 
12
12
  def initialize(url)
13
13
  @url = url
14
- connection
14
+ end
15
+
16
+ def response
17
+ @response ||= connection
15
18
  end
16
19
 
17
20
  def connection
18
21
  api_url = self.class.get_api_uri(self)
19
- conn = Faraday.new
20
- response= conn.get api_url
21
- @response = Response.new(response).parsed
22
+ Response.new(Faraday.get(api_url)).parsed
22
23
  end
23
24
 
24
25
  def id; end
@@ -58,24 +59,25 @@ module Getvideo
58
59
  class Response
59
60
  attr_reader :response
60
61
 
62
+ def initialize(response)
63
+ @response = response
64
+ end
65
+
61
66
  CONTENT_TYPE = {
62
67
  'application/json' => :json,
63
68
  'application/x-www-form-urlencoded' => :html,
64
69
  'text/html' => :html,
65
70
  'text/javascript' => :json,
66
- 'text/xml' => :xml
71
+ 'text/xml' => :xml,
72
+ "text/plain" => :json
67
73
  }
68
74
 
69
75
  PARSERS = {
70
76
  :json => lambda{ |body| MultiJson.respond_to?(:adapter) ? MultiJson.load(body) : MultiJson.decode(body) rescue body },
71
77
  :html => lambda{ |body| Nokogiri::HTML(body) },
72
- :xml => lambda{ |body| Nokogiri::XML(body) }
78
+ :xml => lambda{ |body| MultiXml.parse(body) }
73
79
  }
74
80
 
75
- def initialize(response)
76
- @response = response
77
- end
78
-
79
81
  def headers
80
82
  response.headers
81
83
  end
@@ -85,12 +87,12 @@ module Getvideo
85
87
  end
86
88
 
87
89
  def decode(body)
88
- return '' if !body
90
+ return '' if !body
89
91
  return body if json?
90
92
  charset = body.match(/charset\s*=[\s|\W]*([\w-]+)/)
91
93
  if charset[1].downcase != "utf-8"
92
94
  begin
93
- body.encode! "utf-8", charset[1], {:invalid => :replace}
95
+ body.encode! "utf-8", charset[1], {:invalid => :replace}
94
96
  rescue
95
97
  body
96
98
  end
@@ -113,7 +115,7 @@ module Getvideo
113
115
 
114
116
  def parser
115
117
  type = CONTENT_TYPE[content_type]
116
- type = :json if type == :html && !response.body.match(/\<html/)
118
+ type = :json if type == :html && !response.body.match(/\<html/)
117
119
  return type
118
120
  end
119
121
 
@@ -38,8 +38,11 @@ module Getvideo
38
38
  type = stream.scan(/type=([^&]+)/)
39
39
  vedio_list = {}
40
40
  media.zip(sig, type).each do |m|
41
- m_type = m[2][0].match(/(flv|mp4|webm|3gp)/)[0]
42
- u = CGI::unescape(m[0][0])+ "&signature=" + m[1][0]
41
+ m_type = m[2][0].match(/(flv|mp4|webm|3gp)/)[0]
42
+ u = CGI::unescape(m[0][0])
43
+ if m[1]
44
+ u += "&signature=" + m[1][0]
45
+ end
43
46
  if vedio_list[m_type].nil?
44
47
  vedio_list[m_type] = []
45
48
  vedio_list[m_type] << u
@@ -59,7 +62,7 @@ module Getvideo
59
62
  def connection
60
63
  conn = Faraday.new
61
64
  res = conn.post "http://www.youtube.com/get_video_info", { "video_id" => id }
62
- @response = Response.new(res).body
65
+ Response.new(res).body
63
66
  end
64
67
  end
65
68
  end
@@ -3,6 +3,7 @@ require 'spec_helper'
3
3
 
4
4
  describe Getvideo::Iqiyi do
5
5
  let(:iqiyi){ Getvideo::Iqiyi.new("http://www.iqiyi.com/weidianying/20120925/f15221a897037d07.html")}
6
+ let(:iqiyi2){ Getvideo::Iqiyi.new "http://www.iqiyi.com/v_19rrh4jv9s.html" }
6
7
 
7
8
  let(:iqiyi_swf){ Getvideo::Iqiyi.new("http://player.video.qiyi.com/38c130b7b4124b1e902161e8e377324b/0/649/weidianying/20120925/f15221a897037d07.swf-pid=47084-ptype=2-albumId=233012-tvId=280286")}
8
9
 
@@ -11,21 +12,28 @@ describe Getvideo::Iqiyi do
11
12
  describe "#id" do
12
13
  it "should return id" do
13
14
  iqiyi.id.should == "38c130b7b4124b1e902161e8e377324b"
15
+ iqiyi2.id.should == "8e0f5866b1d89f9328551ab98a95f102"
14
16
  iqiyi_swf.id.should == "38c130b7b4124b1e902161e8e377324b"
15
17
  iqiyi_id.id.should == "38c130b7b4124b1e902161e8e377324b"
16
18
  end
17
19
  end
18
20
 
19
21
  describe "#url" do
20
- it{iqiyi.html_url.should eq("http://www.iqiyi.com/weidianying/20120925/f15221a897037d07.html")}
22
+ it{
23
+ iqiyi.html_url.should eq("http://www.iqiyi.com/weidianying/20120925/f15221a897037d07.html")
24
+ }
21
25
  end
22
26
 
23
27
  describe "#title" do
24
- it{ iqiyi.title.should match(/网络/)}
28
+ it {
29
+ iqiyi.title.should match(/网络/)
30
+ }
25
31
  end
26
32
 
27
33
  describe "#m3u8" do
28
- it{ iqiyi.m3u8.should == "http://meta.video.qiyi.com/161/2d67f7aa72fe95ee65d36ca7ceabb69e.m3u8" }
34
+ it {
35
+ iqiyi.m3u8.should == "http://metan.video.qiyi.com/161/2d67f7aa72fe95ee65d36ca7ceabb69e.m3u8"
36
+ }
29
37
  end
30
38
 
31
39
  describe "#flash" do
@@ -33,7 +41,7 @@ describe Getvideo::Iqiyi do
33
41
  end
34
42
 
35
43
  describe "#media" do
36
- it{ iqiyi.media["mp4"].count.should be(1) }
44
+ it{ iqiyi.media["f4v"].count.should eq(2) }
37
45
  end
38
46
 
39
47
  describe "#cover" do
@@ -1,11 +1,11 @@
1
1
  #coding:utf-8
2
2
  require 'spec_helper'
3
3
 
4
- describe Getvideo::Iask do
5
- let(:iask){ Getvideo::Iask.new "http://video.sina.com.cn/v/b/87948161-2162799562.html" }
6
- let(:iask_swf){ Getvideo::Iask.new "http://you.video.sina.com.cn/api/sinawebApi/outplayrefer.php/vid=87948161_2162799562_PE+1GCBtBjbK+l1lHz2stqkP7KQNt6nniGy2vFutIAhbQ0/XM5GRZdQD6CjQAdkEqDhATJ82cfYn0Rw/s.swf" }
7
- let(:iask_id){ Getvideo::Iask.new "87948161|2162799562" }
8
- let(:iask_noflash){ Getvideo::Iask.new "http://video.sina.com.cn/m/xbfmnz_61889719.html" }
4
+ describe Getvideo::Sina do
5
+ let(:iask){ Getvideo::Sina.new "http://video.sina.com.cn/v/b/87948161-2162799562.html" }
6
+ let(:iask_swf){ Getvideo::Sina.new "http://you.video.sina.com.cn/api/sinawebApi/outplayrefer.php/vid=87948161_2162799562_PE+1GCBtBjbK+l1lHz2stqkP7KQNt6nniGy2vFutIAhbQ0/XM5GRZdQD6CjQAdkEqDhATJ82cfYn0Rw/s.swf" }
7
+ let(:iask_id){ Getvideo::Sina.new "87948161|2162799562" }
8
+ let(:iask_noflash){ Getvideo::Sina.new "http://video.sina.com.cn/m/xbfmnz_61889719.html" }
9
9
 
10
10
 
11
11
  describe "#id" do
@@ -25,7 +25,7 @@ describe Getvideo::Iask do
25
25
 
26
26
  describe "#flash" do
27
27
  it "should return flash url" do
28
- iask.flash.should == "http://you.video.sina.com.cn/api/sinawebApi/outplayrefer.php/vid=87948161_2162799562_aEPhGCo5BjTK+l1lHz2stqlF+6xCpv2xhGi1vVCjLAdcUw6YJMXNb9UA6S3eAclD5yoUEJU3cvci3xwraQ/s.swf"
28
+ iask.flash.should match(/s.swf/)
29
29
  iask_noflash.flash.should be_empty()
30
30
  end
31
31
  end
@@ -51,9 +51,9 @@ describe Getvideo::Iask do
51
51
  end
52
52
 
53
53
  context "when url is play_list" do
54
- let(:iask_p){ Getvideo::Iask.new "http://video.sina.com.cn/playlist/5204279-2214257545-1.html#68348849" }
55
- let(:iask_p2){ Getvideo::Iask.new "http://video.sina.com.cn/playlist/4077594-1549077107-2.html" }
56
- let(:iask_p_swf){ Getvideo::Iask.new "http://you.video.sina.com.cn/api/sinawebApi/outplayrefer.php/vid=68348849_2214257545_aR69SnA+C2DK+l1lHz2stqkP7KQNt6nni2uwuVejIApcQ0/XM5Gfat4D6CHSCdkEqDhAQpA8cfYu0xQ/s.swf" }
54
+ let(:iask_p){ Getvideo::Sina.new "http://video.sina.com.cn/playlist/5204279-2214257545-1.html#68348849" }
55
+ let(:iask_p2){ Getvideo::Sina.new "http://video.sina.com.cn/playlist/4077594-1549077107-2.html" }
56
+ let(:iask_p_swf){ Getvideo::Sina.new "http://you.video.sina.com.cn/api/sinawebApi/outplayrefer.php/vid=68348849_2214257545_aR69SnA+C2DK+l1lHz2stqkP7KQNt6nni2uwuVejIApcQ0/XM5Gfat4D6CHSCdkEqDhAQpA8cfYu0xQ/s.swf" }
57
57
 
58
58
  describe "#id" do
59
59
  it "should return true id" do
@@ -81,29 +81,33 @@ describe Getvideo::Iask do
81
81
 
82
82
 
83
83
  context "when url is news" do
84
- let(:iask_n){ Getvideo::Iask.new "http://video.sina.com.cn/p/news/c/v/2012-10-21/101961889769.html" }
84
+ let(:iask_n){ Getvideo::Sina.new "http://video.sina.com.cn/p/news/c/v/2012-10-21/101961889769.html" }
85
85
  #let(:iask_n){ Getvideo::Iask.new "http://news.sina.com.cn/z/video/rbgd2012/#88208237_6" }
86
- let(:iask_n_id){ Getvideo::Iask.new "http://video.sina.com.cn/p/news/c/v/2012-10-21/101961889769.html#61889105" }
87
- let(:iask_n_swf){ Getvideo::Iask.new "http://you.video.sina.com.cn/api/sinawebApi/outplayrefer.php/vid=88279853_1_bEO9GyM9DWfK+l1lHz2stqkM7KQNt6nknynt71+iJAZRXAuIborfO4kK6CHUB8ZK9G8/s.swf" }
86
+ let(:iask_n_id){ Getvideo::Sina.new "http://video.sina.com.cn/p/news/c/v/2012-10-21/101961889769.html#61889105" }
87
+ let(:sina){Getvideo::Sina.new "http://video.sina.com.cn/p/ent/m/m/2014-03-25/183663661343.html"}
88
+ let(:iask_n_swf){ Getvideo::Sina.new "http://you.video.sina.com.cn/api/sinawebApi/outplayrefer.php/vid=88279853_1_bEO9GyM9DWfK+l1lHz2stqkM7KQNt6nknynt71+iJAZRXAuIborfO4kK6CHUB8ZK9G8/s.swf" }
88
89
 
89
90
  describe "#id" do
90
91
  it "should return true id" do
91
92
  iask_n.id.should == "88279853"
92
93
  iask_n_id.id.should == "61889105"
93
94
  iask_n_swf.id.should == "88279853"
95
+ sina.id.should == "129348331"
94
96
  end
95
97
  end
96
98
 
97
99
  describe "#html_url" do
98
100
  it "should return html url" do
99
101
  iask_n_swf.html_url.should be_empty
102
+ sina.html_url.should == "http://video.sina.com.cn/p/ent/m/m/2014-03-25/183663661343.html"
100
103
  end
101
104
  end
102
105
 
103
106
  describe "#media" do
104
107
  it "should return media data" do
105
- iask_n.media["hlv"][0].should match(/\.hlv/)
106
- iask_n_swf.media["hlv"][0].should match(/\.hlv/)
108
+ #iask_n.media["hlv"].count.should eq(1)
109
+ #iask_n_swf.media["hlv"].count.should eq(1)
110
+ pp sina.m3u8
107
111
  end
108
112
  end
109
113
 
@@ -1,154 +1,268 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Getvideo::Tudou do
4
- context "when url type view" do
5
- let(:tudou_v){Getvideo::Tudou.new "http://www.tudou.com/programs/view/-tuU-wryFaQ/"}
6
- let(:tudou_v_swf){Getvideo::Tudou.new "http://www.tudou.com/v/-tuU-wryFaQ/&rpid=116105338&resourceId=116105338_04_05_99/v.swf"}
7
- let(:tudou_dp_v){Getvideo::Tudou.new "dp.tudou.com/v/-tuU-wryFaQ.html"}
8
- let(:tudou_dp_v_swf){Getvideo::Tudou.new "http://dp.tudou.com/nplayer.swf?151831829&&33.439"}
9
- let(:tudou_dp_v_html){Getvideo::Tudou.new "http://dp.tudou.com/player.php?id=151831829&offset=1.733"}
4
+ context "when url type with program" do
5
+ ####
6
+ # tudou program vedio
7
+ # iid = 188982955
8
+ # lcode = rCg0cXZ2_6g
9
+ ####
10
+ let(:tudou_v){ Getvideo::Tudou.new "http://www.tudou.com/programs/view/rCg0cXZ2_6g/" }
11
+ let(:tudou_v_swf){ Getvideo::Tudou.new "http://www.tudou.com/v/rCg0cXZ2_6g/&rpid=119749846&resourceId=119749846_04_05_99/v.swf" }
10
12
 
11
13
  describe "#id" do
12
- it "should return id" do
13
- tudou_v.id.should == "151831829"
14
- tudou_v_swf.id.should == "151831829"
15
- tudou_dp_v.id.should == "151831829"
16
- tudou_dp_v_swf.id.should == "151831829"
17
- tudou_dp_v_html.id.should == "151831829"
14
+ it "should equal 188982955" do
15
+ tudou_v.id.should == "188982955"
16
+ tudou_v_swf.id.should == "188982955"
18
17
  end
19
18
  end
20
19
 
21
20
  describe "#html_url" do
22
- it "should return html url" do
23
- tudou_v_swf.html_url.should == "http://www.tudou.com/programs/view/-tuU-wryFaQ/"
24
- tudou_dp_v.html_url.should == "http://www.tudou.com/programs/view/-tuU-wryFaQ/"
21
+ it "should equal http://www.tudou.com/programs/view/rCg0cXZ2_6g/" do
22
+ tudou_v.html_url.should eq("http://www.tudou.com/programs/view/rCg0cXZ2_6g/")
23
+ tudou_v_swf.html_url.should eq("http://www.tudou.com/programs/view/rCg0cXZ2_6g/")
25
24
  end
26
25
  end
27
26
 
28
27
  describe "#flash" do
29
- it "should return flash url" do
30
- tudou_v.flash.should == "http://www.tudou.com/v/-tuU-wryFaQ/&rpid=116105338&resourceId=116105338_04_05_99/v.swf"
31
- tudou_dp_v.flash.should == "http://www.tudou.com/v/-tuU-wryFaQ/&rpid=116105338&resourceId=116105338_04_05_99/v.swf"
28
+ it "should equal http://www.tudou.com/v/rCg0cXZ2_6g/v.swf" do
29
+ tudou_v.flash.should eq("http://www.tudou.com/v/rCg0cXZ2_6g/v.swf")
30
+ tudou_v_swf.flash.should eq("http://www.tudou.com/v/rCg0cXZ2_6g/v.swf")
32
31
  end
33
32
  end
34
33
 
35
34
  describe "#title" do
36
- it {tudou_v.title.should match(/20120907/) }
35
+ it "should get video name equal 【伦敦之心】坛久保 - 女性向摔跤揭秘" do
36
+ tudou_v.title.should eq("【伦敦之心】坛久保 - 女性向摔跤揭秘")
37
+ tudou_v_swf.title.should eq("【伦敦之心】坛久保 - 女性向摔跤揭秘")
38
+ end
37
39
  end
38
40
 
39
41
  describe "#cover" do
40
- it{ tudou_v.cover.should match(/tdimg|ykimg/) }
42
+ it "should equal " do
43
+ tudou_v.cover.should eq("http://i2.tdimg.com/188/982/955/p.jpg")
44
+ tudou_v_swf.cover.should eq("http://i2.tdimg.com/188/982/955/p.jpg")
45
+ end
41
46
  end
42
47
 
43
48
  describe "#m3u8" do
44
- it{ tudou_v.m3u8.should == "http://vr.tudou.com/v2proxy/v2.m3u8?it=151831829&st=2&pw=" }
49
+ it "should equal http://vr.tudou.com/v2proxy/v2.m3u8?it=188982955&st=2&pw=" do
50
+ tudou_v.m3u8.should eq("http://vr.tudou.com/v2proxy/v2.m3u8?it=188982955&st=2&pw=")
51
+ tudou_v_swf.m3u8.should eq("http://vr.tudou.com/v2proxy/v2.m3u8?it=188982955&st=2&pw=")
52
+ end
45
53
  end
46
54
 
47
- describe "#media" do
48
- it{ tudou_v.media["f4v"].count.should be(2)}
49
- end
50
55
  end
51
56
 
52
- context "when url type is albumplay" do
53
- let(:tudou_a){Getvideo::Tudou.new "http://www.tudou.com/albumplay/MgWfoV9cT4E.html"}
54
- #会跳转url
55
- let(:tudou_a1){Getvideo::Tudou.new "http://www.tudou.com/albumplay/1D9nGd3U0ks/WjNmtxWnbac.html"}
56
- let(:tudou_a_swf){Getvideo::Tudou.new "http://www.tudou.com/a/MgWfoV9cT4E/&resourceId=0_04_05_99&iid=131561214/v.swf"}
57
- let(:tudou_a2){Getvideo::Tudou.new "http://www.tudou.com/albumplay/oYvFcu7I5YY/RO-yBcJdGws.html"}
58
- let(:tudou_a2_swf){Getvideo::Tudou.new "http://www.tudou.com/a/oYvFcu7I5YY/&resourceId=0_04_05_99&iid=131561156/v.swf"}
59
- let(:tudou_dp_a){Getvideo::Tudou.new "http://dp.tudou.com/a/MgWfoV9cT4E.html"}
60
- let(:tudou_dp_a2){Getvideo::Tudou.new "http://dp.tudou.com/a/MgWfoV9cT4E/A49rc-hkUrY.html"}
61
-
57
+ context "when url type with lisplay" do
58
+ ####
59
+ # tudou list video
60
+ # lcode = 'BCbkQV3rOFc'
61
+ # lid = 17491087
62
+ # iid = 189900273
63
+ # icode = WK3rjXAAbd4
64
+ ####
65
+ let(:tudou_list1){ Getvideo::Tudou.new "http://www.tudou.com/listplay/BCbkQV3rOFc/WK3rjXAAbd4.html" }
66
+ let(:tudou_list2){ Getvideo::Tudou.new "http://www.tudou.com/listplay/BCbkQV3rOFc.html" }
67
+ let(:tudou_list_swf){ Getvideo::Tudou.new "http://www.tudou.com/l/BCbkQV3rOFc/&iid=189900273&rpid=119749846&resourceId=119749846_04_05_99/v.swf" }
68
+
62
69
  describe "#id" do
63
- it "should return id" do
64
- tudou_a_swf.id.should == "131561214"
65
- tudou_a2.id.should == "131561156"
66
- tudou_a2_swf.id.should == "131561156"
67
- tudou_dp_a.id.should == "131561214"
68
- tudou_dp_a2.id.should == "131561214"
70
+ it "should equal 189900273" do
71
+ tudou_list1.id.should == "189900273"
72
+ tudou_list2.id.should == "189900273"
73
+ tudou_list_swf.id.should == "189900273"
69
74
  end
70
75
  end
71
76
 
72
77
  describe "#html_url" do
73
- it "should return id" do
74
- tudou_a_swf.html_url.should == "http://www.tudou.com/albumplay/MgWfoV9cT4E.html"
75
- tudou_a2_swf.html_url.should == "http://www.tudou.com/albumplay/oYvFcu7I5YY.html"
76
- tudou_dp_a.html_url.should == "http://www.tudou.com/albumplay/MgWfoV9cT4E.html"
77
- tudou_dp_a2.html_url.should == "http://www.tudou.com/albumplay/MgWfoV9cT4E/A49rc-hkUrY.html"
78
+ it "should equal http://www.tudou.com/listplay/BCbkQV3rOFc/WK3rjXAAbd4.html" do
79
+ tudou_list1.html_url.should eq("http://www.tudou.com/listplay/BCbkQV3rOFc/WK3rjXAAbd4.html")
80
+ tudou_list2.html_url.should eq("http://www.tudou.com/listplay/BCbkQV3rOFc/WK3rjXAAbd4.html")
81
+ tudou_list_swf.html_url.should eq("http://www.tudou.com/listplay/BCbkQV3rOFc/WK3rjXAAbd4.html")
78
82
  end
79
83
  end
80
84
 
81
85
  describe "#flash" do
82
- it "should return flash" do
83
- tudou_a.flash.should == "http://www.tudou.com/a/MgWfoV9cT4E/&rpid=116105338&resourceId=116105338_04_05_99&iid=131561214/v.swf"
84
- tudou_a2.flash.should == "http://www.tudou.com/a/oYvFcu7I5YY/&rpid=116105338&resourceId=116105338_04_05_99&iid=131561156/v.swf"
85
- tudou_dp_a.flash.should == "http://www.tudou.com/a/MgWfoV9cT4E/&rpid=116105338&resourceId=116105338_04_05_99&iid=131561214/v.swf"
86
- tudou_dp_a2.flash.should == "http://www.tudou.com/a/MgWfoV9cT4E/&rpid=116105338&resourceId=116105338_04_05_99&iid=131561214/v.swf"
86
+ it "should" do
87
+ tudou_list1.flash.should eq("http://www.tudou.com/l/BCbkQV3rOFc/&iid=189900273/v.swf")
88
+ tudou_list2.flash.should eq("http://www.tudou.com/l/BCbkQV3rOFc/&iid=189900273/v.swf")
89
+ tudou_list_swf.flash.should eq("http://www.tudou.com/l/BCbkQV3rOFc/&iid=189900273/v.swf")
87
90
  end
88
91
  end
89
-
92
+
93
+ describe "#media" do
94
+ it "should" do
95
+ tudou_list1.media.count.should eq(5)
96
+ tudou_list2.media.count.should eq(5)
97
+ tudou_list_swf.media.count.should eq(5)
98
+ end
99
+ end
100
+
90
101
  describe "#cover" do
91
- it "should return cover" do
92
- tudou_a.cover.should match(/tdimg|ykimg/)
93
- tudou_a1.cover.should match(/tdimg|ykimg/)
102
+ it "should" do
103
+ tudou_list1.cover.should eq("http://g2.tdimg.com/e3c1e6a10fe815112a7076609dae5c26/w_2.jpg")
104
+ tudou_list2.cover.should eq("http://g2.tdimg.com/e3c1e6a10fe815112a7076609dae5c26/w_2.jpg")
105
+ tudou_list_swf.cover.should eq("http://g2.tdimg.com/e3c1e6a10fe815112a7076609dae5c26/w_2.jpg")
94
106
  end
95
107
  end
96
108
 
97
- describe "#media" do
98
- it "return media url" do
99
- tudou_a.media["f4v"].count.should be(0)
100
- tudou_a.media["flv"].count.should be(0)
109
+ describe "#m3u8" do
110
+ it "should" do
111
+ tudou_list1.m3u8.should eq("http://vr.tudou.com/v2proxy/v2.m3u8?it=189900273&st=2&pw=")
112
+ tudou_list2.m3u8.should eq("http://vr.tudou.com/v2proxy/v2.m3u8?it=189900273&st=2&pw=")
113
+ tudou_list_swf.m3u8.should eq("http://vr.tudou.com/v2proxy/v2.m3u8?it=189900273&st=2&pw=")
114
+ end
115
+ end
116
+
117
+ describe "#title" do
118
+ it "should" do
119
+ tudou_list1.title.should eq("给你个机会做男人 你愿意吗?妹子神回复【神街访】")
120
+ tudou_list2.title.should eq("给你个机会做男人 你愿意吗?妹子神回复【神街访】")
121
+ tudou_list_swf.title.should eq("给你个机会做男人 你愿意吗?妹子神回复【神街访】")
101
122
  end
102
123
  end
103
124
  end
104
125
 
105
- context "when url type is playlist" do
106
- let(:tudou_l){Getvideo::Tudou.new "http://www.tudou.com/listplay/ofVJWe0u0sI.html"}
107
- let(:tudou_l_swf){Getvideo::Tudou.new "http://www.tudou.com/l/ofVJWe0u0sI/&rpid=116105338&resourceId=116105338_04_05_99&iid=126315712/v.swf"}
108
- let(:tudou_l2){Getvideo::Tudou.new "http://www.tudou.com/listplay/ofVJWe0u0sI/_4805-g0kM8.html"}
109
- let(:tudou_l2_swf){Getvideo::Tudou.new "http://www.tudou.com/l/ofVJWe0u0sI/&rpid=116105338&resourceId=116105338_04_05_99&iid=126330996/v.swf"}
110
- let(:tudou_dp_l){Getvideo::Tudou.new "http://dp.tudou.com/l/ofVJWe0u0sI.html"}
111
- let(:tudou_dp_l2){Getvideo::Tudou.new "http://dp.tudou.com/l/ofVJWe0u0sI/_4805-g0kM8.html"}
126
+ context "when url type with albumplay" do
127
+ ####
128
+ # tudou albumplay video 1
129
+ # lid = 235139
130
+ # lcode = lwRXz9WFd48
131
+ # ylid = 286629
132
+ # iid = 131675891
133
+ # icode = Tb6_eGHHjAI
134
+ # vcode = XNjY2NTMyNDgw
135
+ #
136
+ # tudou albumplay video 2
137
+ # lid = 235139
138
+ # lcode = lwRXz9WFd48
139
+ # ylid = 286629
140
+ # iid = 131675896
141
+ # icode = Tb6_eGHHjAI
142
+ # vcode = XNjY2NTMyNDgw
143
+ ###
144
+ let(:tudou_albumplay1){ Getvideo::Tudou.new "http://www.tudou.com/albumplay/lwRXz9WFd48/uW1V7DwwNNY.html"}
145
+ let(:tudou_albumplay2){ Getvideo::Tudou.new "http://www.tudou.com/albumplay/lwRXz9WFd48.html"}
146
+ let(:tudou_albumplay3){ Getvideo::Tudou.new "http://www.tudou.com/albumplay/lwRXz9WFd48/Tb6_eGHHjAI.html"}
147
+ let(:tudou_albumplay_swf1){ Getvideo::Tudou.new "http://www.tudou.com/a/lwRXz9WFd48/&iid=131675891&rpid=119749846&resourceId=119749846_04_05_99/v.swf" }
148
+ let(:tudou_albumplay_swf2){ Getvideo::Tudou.new "http://www.tudou.com/a/lwRXz9WFd48/&iid=131675896&rpid=119749846&resourceId=119749846_04_05_99/v.swf" }
112
149
 
113
150
  describe "#id" do
114
- it "should return id" do
115
- tudou_l.id.should == "161629341"
116
- tudou_l_swf.id.should == "126315712"
117
- tudou_l2.id.should == "126330996"
118
- tudou_l2_swf.id.should == "126330996"
119
- tudou_dp_l.id.should == "161629341"
120
- tudou_dp_l2.id.should == "126330996"
151
+ it "should equal 131675896" do
152
+ tudou_albumplay1.id.should eq("131675891")
153
+ tudou_albumplay2.id.should eq("131675891")
154
+ tudou_albumplay3.id.should eq("131675896")
155
+ tudou_albumplay_swf1.id.should eq("131675891")
156
+ tudou_albumplay_swf2.id.should eq("131675896")
121
157
  end
122
158
  end
123
159
 
124
160
  describe "#html_url" do
125
- it "should return id" do
126
- tudou_l_swf.html_url.should == "http://www.tudou.com/listplay/ofVJWe0u0sI/zsbv-3JbxJk.html"
127
- tudou_l2_swf.html_url.should == "http://www.tudou.com/listplay/ofVJWe0u0sI/_4805-g0kM8.html"
161
+ it "should equal http://www.tudou.com/albumplay/lwRXz9WFd48/uW1V7DwwNNY.html" do
162
+ tudou_albumplay1.html_url.should eq("http://www.tudou.com/albumplay/lwRXz9WFd48/uW1V7DwwNNY.html")
163
+ tudou_albumplay2.html_url.should eq("http://www.tudou.com/albumplay/lwRXz9WFd48/uW1V7DwwNNY.html")
164
+ tudou_albumplay3.html_url.should eq("http://www.tudou.com/albumplay/lwRXz9WFd48/Tb6_eGHHjAI.html")
165
+ tudou_albumplay_swf1.html_url.should eq("http://www.tudou.com/albumplay/lwRXz9WFd48/uW1V7DwwNNY.html")
166
+ tudou_albumplay_swf2.html_url.should eq("http://www.tudou.com/albumplay/lwRXz9WFd48/Tb6_eGHHjAI.html")
128
167
  end
129
168
  end
130
169
 
131
- describe "#flash" do
132
- it "should return flash" do
133
- tudou_l.flash.should == "http://www.tudou.com/l/ofVJWe0u0sI/&rpid=116105338&resourceId=116105338_04_05_99&iid=161629341/v.swf"
134
- tudou_l2.flash.should == "http://www.tudou.com/l/ofVJWe0u0sI/&rpid=116105338&resourceId=116105338_04_05_99&iid=126330996/v.swf"
170
+ describe "flash" do
171
+ it "should return real flash" do
172
+ tudou_albumplay1.flash.should eq("http://www.tudou.com/a/lwRXz9WFd48/&iid=131675891/v.swf")
173
+ tudou_albumplay2.flash.should eq("http://www.tudou.com/a/lwRXz9WFd48/&iid=131675891/v.swf")
174
+ tudou_albumplay3.flash.should eq("http://www.tudou.com/a/lwRXz9WFd48/&iid=131675896/v.swf")
175
+ tudou_albumplay_swf1.flash.should eq("http://www.tudou.com/a/lwRXz9WFd48/&iid=131675891/v.swf")
176
+ tudou_albumplay_swf2.flash.should eq("http://www.tudou.com/a/lwRXz9WFd48/&iid=131675896/v.swf")
177
+ end
178
+ end
179
+
180
+ describe "#media" do
181
+ it "should get 3 media" do
182
+ tudou_albumplay1.media.count.should eq(3)
183
+ tudou_albumplay2.media.count.should eq(3)
184
+ tudou_albumplay3.media.count.should eq(3)
185
+ tudou_albumplay_swf1.media.count.should eq(3)
186
+ tudou_albumplay_swf2.media.count.should eq(3)
187
+ end
188
+ end
189
+
190
+ describe "#cover" do
191
+ it "should get real cover" do
192
+ tudou_albumplay1.cover.should eq("http://g3.ykimg.com/11270F1F4652E4F6DE2030000000002C541A48-C9BA-60F1-557B-4F5D58E7820B")
193
+ tudou_albumplay2.cover.should eq("http://g3.ykimg.com/11270F1F4652E4F6DE2030000000002C541A48-C9BA-60F1-557B-4F5D58E7820B")
194
+ tudou_albumplay3.cover.should eq("http://g2.ykimg.com/11270F1F4652E4FF55A147000000004D785935-2C2C-DB1C-7C9E-ECBE99D259D5")
195
+ tudou_albumplay_swf1.cover.should eq("http://g3.ykimg.com/11270F1F4652E4F6DE2030000000002C541A48-C9BA-60F1-557B-4F5D58E7820B")
196
+ tudou_albumplay_swf2.cover.should eq("http://g2.ykimg.com/11270F1F4652E4FF55A147000000004D785935-2C2C-DB1C-7C9E-ECBE99D259D5")
197
+ end
198
+ end
199
+
200
+ describe "#title" do
201
+ it "should get video name equal 发胶喷太猛一秒就爆炸" do
202
+ tudou_albumplay1.title.should eq("发胶喷太猛一秒就爆炸")
203
+ tudou_albumplay2.title.should eq("发胶喷太猛一秒就爆炸")
204
+ tudou_albumplay3.title.should eq("缺德男电梯调戏仨美女")
205
+ tudou_albumplay_swf1.title.should eq("lol:-) 第二季 01")
206
+ tudou_albumplay_swf2.title.should eq("lol:-) 第二季 11")
207
+ end
208
+ end
209
+
210
+ describe "#cover" do
211
+ it "should get real cover" do
212
+ tudou_albumplay1.m3u8.should eq("http://vr.tudou.com/v2proxy/v2.m3u8?it=131675891&st=2&pw=")
213
+ tudou_albumplay2.m3u8.should eq("http://vr.tudou.com/v2proxy/v2.m3u8?it=131675891&st=2&pw=")
214
+ tudou_albumplay3.m3u8.should eq("http://vr.tudou.com/v2proxy/v2.m3u8?it=131675896&st=2&pw=")
215
+ tudou_albumplay_swf1.m3u8.should eq("http://vr.tudou.com/v2proxy/v2.m3u8?it=131675891&st=2&pw=")
216
+ tudou_albumplay_swf2.m3u8.should eq("http://vr.tudou.com/v2proxy/v2.m3u8?it=131675896&st=2&pw=")
135
217
  end
136
218
  end
137
-
138
219
  end
139
220
 
140
- context "when url type is oplay" do
141
- let(:tudou_o){Getvideo::Tudou.new "http://www.tudou.com/oplay/6jo2_Ep6Jbg.html"}
142
- let(:tudou_o_swf){Getvideo::Tudou.new "http://www.tudou.com/o/6jo2_Ep6Jbg/&resourceId=0_04_05_99&iid=130441856/v.swf"}
143
- let(:tudou_o2){Getvideo::Tudou.new "http://www.tudou.com/oplay/6jo2_Ep6Jbg/pJKf69qZMyQ.html"}
144
- let(:tudou_o2_swf){Getvideo::Tudou.new "http://www.tudou.com/o/6jo2_Ep6Jbg/&resourceId=0_04_05_99&iid=130441856/v.swf"}
221
+ context "when url type with oplay" do
222
+ ####
223
+ # tudou oplay video
224
+ # lid = 98167
225
+ # lcode = 6jo2_Ep6Jbg
226
+ # ylid = 22642
227
+ # iid = 130441856
228
+ # icode = pJKf69qZMyQ
229
+ # vcode = XMzU1NDE5MTYw
230
+ ###
231
+ let(:tudou_oplay){ Getvideo::Tudou.new "www.tudou.com/oplay/6jo2_Ep6Jbg/pJKf69qZMyQ.html"}
232
+ let(:tudou_oplay_swf){ Getvideo::Tudou.new "http://www.tudou.com/o/6jo2_Ep6Jbg/&iid=130441856&rpid=119749846&resourceId=119749846_04_05_99/v.swf"}
145
233
 
146
234
  describe "#id" do
147
- it "should return id" do
148
- tudou_o.id.should == "130441856"
149
- tudou_o_swf.id.should == "130441856"
150
- tudou_o2.id.should == "130441856"
151
- tudou_o2_swf.id.should == "130441856"
235
+ it "should equal 130441856" do
236
+ tudou_oplay.id.should eq("130441856")
237
+ tudou_oplay_swf.id.should eq("130441856")
238
+ end
239
+ end
240
+
241
+ describe "title" do
242
+ it "should equal 十一罗汉-Ocean's Eleven(2001)中文预告片" do
243
+ tudou_oplay.title.should eq("十一罗汉-Ocean's Eleven(2001)中文预告片")
244
+ tudou_oplay_swf.title.should eq("十一罗汉-Ocean's Eleven(2001)中文预告片")
245
+ end
246
+ end
247
+
248
+ describe "#html_url" do
249
+ it "should equal http://www.tudou.com/albumplay/6jo2_Ep6Jbg/pJKf69qZMyQ.html" do
250
+ tudou_oplay.html_url.should eq("http://www.tudou.com/albumplay/6jo2_Ep6Jbg/pJKf69qZMyQ.html")
251
+ tudou_oplay_swf.html_url.should eq("http://www.tudou.com/albumplay/6jo2_Ep6Jbg/pJKf69qZMyQ.html")
252
+ end
253
+ end
254
+
255
+ describe "flash" do
256
+ it "should equal http://www.tudou.com/o/6jo2_Ep6Jbg/&iid=130441856/v.swf" do
257
+ tudou_oplay.flash.should eq("http://www.tudou.com/a/6jo2_Ep6Jbg/&iid=130441856/v.swf")
258
+ tudou_oplay_swf.flash.should eq("http://www.tudou.com/a/6jo2_Ep6Jbg/&iid=130441856/v.swf")
259
+ end
260
+ end
261
+
262
+ describe "cover" do
263
+ it "should get real cover" do
264
+ tudou_oplay.cover.should eq("http://g3.ykimg.com/1100641F46510C41BA2F3300B49D4A19E2DAE9-14BD-BAC8-1EF3-05BCB948C329")
265
+ tudou_oplay_swf.cover.should eq("http://g3.ykimg.com/1100641F46510C41BA2F3300B49D4A19E2DAE9-14BD-BAC8-1EF3-05BCB948C329")
152
266
  end
153
267
  end
154
268
  end