jtv 1.0.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -38
- data/lib/jtv/channel.rb +4 -11
- data/lib/jtv/client.rb +1 -1
- data/lib/jtv/stream.rb +4 -4
- data/lib/jtv/user.rb +1 -5
- data/lib/jtv/version.rb +1 -1
- data/spec/features/channel_spec.rb +8 -27
- data/spec/features/stream_spec.rb +8 -10
- data/spec/features/user_spec.rb +1 -8
- data/spec/jtv/channel_spec.rb +3 -19
- data/spec/jtv/client_spec.rb +2 -5
- data/spec/jtv/defaults_spec.rb +6 -6
- data/spec/jtv/stream_spec.rb +7 -6
- data/spec/jtv/user_spec.rb +1 -8
- data/spec/jtv_spec.rb +2 -2
- data/spec/vcr_cassettes/Jtv_Channel/_archives/returns_an_array_of_archives_for_given_channel.yml +42 -37
- data/spec/vcr_cassettes/Jtv_Channel/_channel_show/provides_information_for_a_given_channel.yml +40 -42
- data/spec/vcr_cassettes/Jtv_Channel/_fans/fetches_fans_for_a_given_channel.yml +65 -351
- data/spec/vcr_cassettes/Jtv_Stream/_featured/returns_a_list_of_streams.yml +1552 -0
- data/spec/vcr_cassettes/Jtv_Stream/_search/returns_streams_based_on_search_query.yml +66 -334
- data/spec/vcr_cassettes/Jtv_Stream/_summary/returns_a_summary_of_Justin_tv_data.yml +70 -0
- data/spec/vcr_cassettes/Jtv_User/_user_show/fetches_information_on_user.yml +37 -34
- data/spec/vcr_config.rb +0 -4
- metadata +26 -32
- data/spec/vcr_cassettes/Jtv_Channel/_chat_embed/returns_an_iframe_for_chat.yml +0 -46
- data/spec/vcr_cassettes/Jtv_Channel/_embed/returns_a_string_containing_an_embed_object.yml +0 -53
- data/spec/vcr_cassettes/Jtv_Stream/_list/returns_a_list_of_streams_for_a_category.yml +0 -1692
- data/spec/vcr_cassettes/Jtv_Stream/_summary/returns_a_summary_of_Jutstin_tv_data.yml +0 -51
- data/spec/vcr_cassettes/Jtv_User/_favorites/fetches_favorites_from_user.yml +0 -88
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0454f3e0561798a0d6df4d666c1fc46cfe477c3
|
4
|
+
data.tar.gz: e8fad1ba471ef2a2fafe9469c9bbc314af71b6bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7012b5ffe47031f3730932b3b25f6fe11e09268eff3764e7ffc862ac7c72e9b243da2a1e181e75248f6f2ada575bee884f67a406956006d6909eca1766941a8e
|
7
|
+
data.tar.gz: a971c9eecc1a2abd150b70693c9d1aff76433900911192f4ff65c92fead328abe73f3114aadc3b9a304ebb24bd2702c2309c83bd91a7eb3137e604b0bbc1aaae
|
data/README.md
CHANGED
@@ -68,18 +68,16 @@ category).
|
|
68
68
|
|
69
69
|
You can include a channel, language, or category in your search params.
|
70
70
|
|
71
|
-
####
|
71
|
+
#### Featured
|
72
72
|
|
73
73
|
Returns stream information for all live channels. The results are sorted by the
|
74
74
|
current number of viewers, with the most popular channels first.
|
75
75
|
|
76
76
|
```ruby
|
77
|
-
Jtv.
|
77
|
+
Jtv.featured
|
78
78
|
# [{'name' => 'live_user_wingsofdeath'...}]
|
79
79
|
```
|
80
80
|
|
81
|
-
You can include a channel, category, title, language, limit, and offset.
|
82
|
-
|
83
81
|
#### Search
|
84
82
|
|
85
83
|
Returns stream information for the live channels that match a search query. The
|
@@ -107,17 +105,6 @@ Returns extended information for a user, specified by user id or login.
|
|
107
105
|
|
108
106
|
Pass in a user's login.
|
109
107
|
|
110
|
-
#### Favorites
|
111
|
-
|
112
|
-
Get all channels who are favorites of a user.
|
113
|
-
|
114
|
-
```ruby
|
115
|
-
Jtv.favorites 'mockra'
|
116
|
-
# [{}]
|
117
|
-
```
|
118
|
-
|
119
|
-
Pass in a user's login.
|
120
|
-
|
121
108
|
### Channel
|
122
109
|
|
123
110
|
#### Show
|
@@ -160,29 +147,6 @@ channel id or login must be included as a param. Optional limit and offset
|
|
160
147
|
params (defaults are 20 for limit and 0 for offset). Results returned are
|
161
148
|
limited to 100. Results are returned in create date order
|
162
149
|
|
163
|
-
#### Embed
|
164
|
-
|
165
|
-
Get embed code for a channel.
|
166
|
-
|
167
|
-
```ruby
|
168
|
-
Jtv.embed 'justin', volume: 50
|
169
|
-
# "<object></object>"
|
170
|
-
```
|
171
|
-
|
172
|
-
You can supply params volume, publisher_guard (for the default channel password
|
173
|
-
to try), height, width, and watermark_position
|
174
|
-
|
175
|
-
#### Chat Embed
|
176
|
-
|
177
|
-
Get chat embed code for a channel.
|
178
|
-
|
179
|
-
```ruby
|
180
|
-
Jtv.chat_embed 'justin', height: 1000
|
181
|
-
# "<iframe></iframe>"
|
182
|
-
```
|
183
|
-
|
184
|
-
You can supply params height and width.
|
185
|
-
|
186
150
|
## Contributing
|
187
151
|
|
188
152
|
Contributions and feedback are more than welcome and highly encouraged.
|
data/lib/jtv/channel.rb
CHANGED
@@ -1,25 +1,18 @@
|
|
1
1
|
module Jtv
|
2
2
|
module Channel
|
3
3
|
def channel_show id
|
4
|
-
get "
|
4
|
+
get "channels/#{id}.json"
|
5
5
|
end
|
6
6
|
|
7
7
|
def fans params = {}
|
8
|
+
# authenticated
|
8
9
|
id = params[:id] || params[:channel]
|
9
|
-
get "
|
10
|
+
get "channels/#{id}/follows.json", params
|
10
11
|
end
|
11
12
|
|
12
13
|
def archives params = {}
|
13
14
|
id = params[:id] || params[:channel]
|
14
|
-
get "
|
15
|
-
end
|
16
|
-
|
17
|
-
def embed id, params = {}
|
18
|
-
request(:get, "channel/embed/#{id}", params)[:body]
|
19
|
-
end
|
20
|
-
|
21
|
-
def chat_embed id, params = {}
|
22
|
-
request(:get, "channel/chat_embed/#{id}", params)[:body]
|
15
|
+
get "channels/#{id}/videos.json", params
|
23
16
|
end
|
24
17
|
end
|
25
18
|
end
|
data/lib/jtv/client.rb
CHANGED
data/lib/jtv/stream.rb
CHANGED
@@ -3,16 +3,16 @@ require 'uri'
|
|
3
3
|
module Jtv
|
4
4
|
module Stream
|
5
5
|
def summary params = {}
|
6
|
-
get '
|
6
|
+
get 'streams/summary.json', params
|
7
7
|
end
|
8
8
|
|
9
|
-
def
|
10
|
-
get '
|
9
|
+
def featured params = {}
|
10
|
+
get 'streams/featured.json', params
|
11
11
|
end
|
12
12
|
|
13
13
|
def search query, params = {}
|
14
14
|
query = URI.escape query
|
15
|
-
get "
|
15
|
+
get "search/streams.json?q=#{query}", params
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
data/lib/jtv/user.rb
CHANGED
data/lib/jtv/version.rb
CHANGED
@@ -5,44 +5,25 @@ describe Jtv::Channel do
|
|
5
5
|
describe '#fans', :vcr do
|
6
6
|
it 'fetches fans for a given channel' do
|
7
7
|
fans = Jtv.fans id: 'officecam'
|
8
|
-
expect(fans).to be_an Array
|
9
|
-
expect(fans.first).to be_a Hash
|
10
|
-
expect(fans.first['
|
8
|
+
expect(fans['follows']).to be_an Array
|
9
|
+
expect(fans['follows'].first).to be_a Hash
|
10
|
+
expect(fans['follows'].first['user']['_id']).to be_an Integer
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
describe '#archives', :vcr do
|
15
15
|
it 'returns an array of archives for given channel' do
|
16
|
-
archives = Jtv.archives channel: '
|
17
|
-
expect(archives).to be_an Array
|
18
|
-
expect(archives.count).to eq 2
|
19
|
-
expect(archives.first['
|
16
|
+
archives = Jtv.archives channel: 'test_channel', limit: 2
|
17
|
+
expect(archives['videos']).to be_an Array
|
18
|
+
expect(archives['videos'].count).to eq 2
|
19
|
+
expect(archives['videos'].first['broadcast_type']).to eq 'highlight'
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
describe '#channel_show', :vcr do
|
24
24
|
it 'provides information for a given channel' do
|
25
25
|
channel = Jtv.channel_show 'apidemo'
|
26
|
-
expect(channel['
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe '#embed', :vcr do
|
31
|
-
it 'returns a string containing an embed object' do
|
32
|
-
embed = Jtv.embed 'justin', volume: 50
|
33
|
-
expect(embed).to be_a String
|
34
|
-
expect(embed).to include 'volume=50'
|
35
|
-
expect(embed).to include 'object'
|
36
|
-
expect(embed).to include 'x-shockwave-flash'
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
describe '#chat_embed', :vcr do
|
41
|
-
it 'returns an iframe for chat' do
|
42
|
-
chat = Jtv.chat_embed 'justin', height: 50
|
43
|
-
expect(chat).to be_a String
|
44
|
-
expect(chat).to include '50'
|
45
|
-
expect(chat).to include 'iframe'
|
26
|
+
expect(channel['display_name']).to eq 'Apidemo'
|
46
27
|
end
|
47
28
|
end
|
48
29
|
end
|
@@ -3,25 +3,23 @@ require 'vcr_config'
|
|
3
3
|
|
4
4
|
describe Jtv::Stream do
|
5
5
|
describe '#summary', :vcr do
|
6
|
-
it 'returns a summary of
|
6
|
+
it 'returns a summary of Justin.tv data' do
|
7
7
|
summary = Jtv.summary
|
8
|
-
expect(summary['
|
8
|
+
expect(summary['viewers']).to be > 0
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
describe '#
|
13
|
-
it 'returns a list of streams
|
14
|
-
list = Jtv.
|
15
|
-
expect(list.count).to eq
|
16
|
-
expect(list.first['category']).to match(/gaming/i)
|
12
|
+
describe '#featured', :vcr do
|
13
|
+
it 'returns a list of streams' do
|
14
|
+
list = Jtv.featured
|
15
|
+
expect(list['featured'].count).to eq 25
|
17
16
|
end
|
18
17
|
end
|
19
18
|
|
20
19
|
describe '#search', :vcr do
|
21
20
|
it 'returns streams based on search query' do
|
22
|
-
search = Jtv.search '
|
23
|
-
expect(search
|
24
|
-
expect(search.first['category']).to eq 'entertainment'
|
21
|
+
search = Jtv.search 'starcraft'
|
22
|
+
expect(search['_total']).to be > 0
|
25
23
|
end
|
26
24
|
end
|
27
25
|
end
|
data/spec/features/user_spec.rb
CHANGED
@@ -5,14 +5,7 @@ describe Jtv::User do
|
|
5
5
|
describe '#user_show', :vcr do
|
6
6
|
it 'fetches information on user' do
|
7
7
|
user = Jtv.user_show 'augury'
|
8
|
-
expect(user['
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
describe '#favorites', :vcr do
|
13
|
-
it 'fetches favorites from user' do
|
14
|
-
user = Jtv.favorites 'augury'
|
15
|
-
expect(user.first['language']).to eq 'en'
|
8
|
+
expect(user['display_name']).to eq 'Augury'
|
16
9
|
end
|
17
10
|
end
|
18
11
|
end
|
data/spec/jtv/channel_spec.rb
CHANGED
@@ -7,14 +7,14 @@ describe Jtv::Channel do
|
|
7
7
|
|
8
8
|
describe '#channel_show' do
|
9
9
|
it 'sends path with user to get' do
|
10
|
-
client.
|
10
|
+
expect(client).to receive(:get).with 'channels/test.json'
|
11
11
|
client.channel_show 'test'
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
describe '#fans' do
|
16
16
|
it 'sends fans and params to get' do
|
17
|
-
client.
|
17
|
+
expect(client).to receive(:get).with 'channels/test/follows.json',
|
18
18
|
{ channel: 'test' }
|
19
19
|
client.fans channel: 'test'
|
20
20
|
end
|
@@ -22,25 +22,9 @@ describe Jtv::Channel do
|
|
22
22
|
|
23
23
|
describe '#archives' do
|
24
24
|
it 'sends archives and params to get' do
|
25
|
-
client.
|
25
|
+
expect(client).to receive(:get).with 'channels/test/videos.json',
|
26
26
|
{ id: 'test' }
|
27
27
|
client.archives id: 'test'
|
28
28
|
end
|
29
29
|
end
|
30
|
-
|
31
|
-
describe '#embed' do
|
32
|
-
it 'sends :get, embed path with login and params to request' do
|
33
|
-
client.should_receive(:request).with(:get, 'channel/embed/test',
|
34
|
-
{ volume: 50 }).and_return({})
|
35
|
-
client.embed 'test', volume: 50
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
describe '#chat_embed' do
|
40
|
-
it 'sends :get, chat_embed path with login and params to request' do
|
41
|
-
client.should_receive(:request).with(:get, 'channel/chat_embed/justin',
|
42
|
-
{ height: 50 }).and_return({})
|
43
|
-
client.chat_embed 'justin', height: 50
|
44
|
-
end
|
45
|
-
end
|
46
30
|
end
|
data/spec/jtv/client_spec.rb
CHANGED
@@ -6,7 +6,7 @@ describe Jtv::Client do
|
|
6
6
|
|
7
7
|
describe '#get' do
|
8
8
|
it 'fetches JSON based on method, path, and params' do
|
9
|
-
client.
|
9
|
+
expect(client).to receive(:get_json).with(:get, '/test/', {})
|
10
10
|
client.get '/test/'
|
11
11
|
end
|
12
12
|
end
|
@@ -20,7 +20,7 @@ describe Jtv::Client do
|
|
20
20
|
context 'when including stream' do
|
21
21
|
it 'has access to summary, list, and search' do
|
22
22
|
expect(client).to respond_to :summary
|
23
|
-
expect(client).to respond_to :
|
23
|
+
expect(client).to respond_to :featured
|
24
24
|
expect(client).to respond_to :search
|
25
25
|
end
|
26
26
|
end
|
@@ -28,7 +28,6 @@ describe Jtv::Client do
|
|
28
28
|
context 'when including user' do
|
29
29
|
it 'has access to show and favorites' do
|
30
30
|
expect(client).to respond_to :user_show
|
31
|
-
expect(client).to respond_to :favorites
|
32
31
|
end
|
33
32
|
end
|
34
33
|
|
@@ -37,8 +36,6 @@ describe Jtv::Client do
|
|
37
36
|
expect(client).to respond_to :channel_show
|
38
37
|
expect(client).to respond_to :fans
|
39
38
|
expect(client).to respond_to :archives
|
40
|
-
expect(client).to respond_to :embed
|
41
|
-
expect(client).to respond_to :chat_embed
|
42
39
|
end
|
43
40
|
end
|
44
41
|
end
|
data/spec/jtv/defaults_spec.rb
CHANGED
@@ -5,20 +5,20 @@ class Client; include Jtv::Defaults; end
|
|
5
5
|
describe Jtv::Defaults do
|
6
6
|
describe '#credentials' do
|
7
7
|
before do
|
8
|
-
Jtv.
|
9
|
-
Jtv.
|
8
|
+
expect(Jtv).to receive(:consumer_key)
|
9
|
+
expect(Jtv).to receive(:consumer_secret)
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'uses Jtv settings by default' do
|
13
|
-
Jtv.
|
14
|
-
Jtv.
|
13
|
+
expect(Jtv).to receive(:oauth_token)
|
14
|
+
expect(Jtv).to receive(:oauth_secret)
|
15
15
|
Client.new.credentials
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'uses set oauth values if available' do
|
19
19
|
client = Client.new
|
20
|
-
client.
|
21
|
-
client.
|
20
|
+
allow(client).to receive(:oauth_token).and_return 'token'
|
21
|
+
allow(client).to receive(:oauth_secret).and_return 'secret'
|
22
22
|
client.credentials
|
23
23
|
end
|
24
24
|
end
|
data/spec/jtv/stream_spec.rb
CHANGED
@@ -7,22 +7,23 @@ describe Jtv::Stream do
|
|
7
7
|
|
8
8
|
describe '#summary' do
|
9
9
|
it 'sends summary and params to get' do
|
10
|
-
client.
|
10
|
+
expect(client).to receive(:get).with 'streams/summary.json',
|
11
11
|
{ channel: 'test' }
|
12
12
|
client.summary channel: 'test'
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
describe '#
|
17
|
-
it 'sends
|
18
|
-
client.
|
19
|
-
|
16
|
+
describe '#featured' do
|
17
|
+
it 'sends featured and params to get' do
|
18
|
+
expect(client).to receive(:get).with 'streams/featured.json',
|
19
|
+
{ channel: 'test' }
|
20
|
+
client.featured channel: 'test'
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
23
24
|
describe '#search' do
|
24
25
|
it 'sends search and params to get' do
|
25
|
-
client.
|
26
|
+
expect(client).to receive(:get).with 'search/streams.json?q=test%20ruby',
|
26
27
|
{ limit: 50 }
|
27
28
|
client.search 'test ruby', limit: 50
|
28
29
|
end
|
data/spec/jtv/user_spec.rb
CHANGED
@@ -7,15 +7,8 @@ describe Jtv::User do
|
|
7
7
|
|
8
8
|
describe '#user_show' do
|
9
9
|
it 'sends path with user to get' do
|
10
|
-
client.
|
10
|
+
expect(client).to receive(:get).with 'users/test.json'
|
11
11
|
client.user_show 'test'
|
12
12
|
end
|
13
13
|
end
|
14
|
-
|
15
|
-
describe '#favorites' do
|
16
|
-
it 'sends favorites path with user to get' do
|
17
|
-
client.should_receive(:get).with 'user/favorites/test.json'
|
18
|
-
client.favorites 'test'
|
19
|
-
end
|
20
|
-
end
|
21
14
|
end
|
data/spec/jtv_spec.rb
CHANGED
@@ -20,11 +20,11 @@ describe Jtv do
|
|
20
20
|
|
21
21
|
context 'when delegating to client' do
|
22
22
|
before do
|
23
|
-
Jtv.
|
23
|
+
allow(Jtv).to receive(:client).and_return client
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'calls the correct method on client' do
|
27
|
-
client.
|
27
|
+
expect(client).to receive(:get).with '/test'
|
28
28
|
Jtv.get '/test'
|
29
29
|
end
|
30
30
|
|
data/spec/vcr_cassettes/Jtv_Channel/_archives/returns_an_array_of_archives_for_given_channel.yml
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri:
|
5
|
+
uri: https://api.twitch.tv/kraken/channels/test_channel/videos.json?channel=test_channel&limit=2
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -12,8 +12,9 @@ http_interactions:
|
|
12
12
|
User-Agent:
|
13
13
|
- Jtv Gem
|
14
14
|
Authorization:
|
15
|
-
- OAuth
|
16
|
-
|
15
|
+
- OAuth oauth_consumer_key="", oauth_nonce="8021230e12a94d3c88b2a1cb8267140d",
|
16
|
+
oauth_signature="5dKQdylAXEJlV2OgZISmN0fzApk%3D", oauth_signature_method="HMAC-SHA1",
|
17
|
+
oauth_timestamp="1424824758", oauth_token="", oauth_version="1.0"
|
17
18
|
Accept-Encoding:
|
18
19
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
19
20
|
response:
|
@@ -24,44 +25,48 @@ http_interactions:
|
|
24
25
|
Server:
|
25
26
|
- nginx
|
26
27
|
Date:
|
27
|
-
-
|
28
|
+
- Wed, 25 Feb 2015 00:39:19 GMT
|
28
29
|
Content-Type:
|
29
|
-
- application/json
|
30
|
-
|
31
|
-
-
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Content-Length:
|
32
|
+
- '395'
|
32
33
|
Connection:
|
33
|
-
-
|
34
|
+
- keep-alive
|
35
|
+
Status:
|
36
|
+
- 200 OK
|
37
|
+
X-Api-Version:
|
38
|
+
- '3'
|
39
|
+
X-Frame-Options:
|
40
|
+
- SAMEORIGIN
|
41
|
+
Cache-Control:
|
42
|
+
- max-age=300, public
|
34
43
|
Vary:
|
35
|
-
- Accept-
|
36
|
-
|
37
|
-
-
|
44
|
+
- Accept-Encoding
|
45
|
+
X-Ua-Compatible:
|
46
|
+
- IE=Edge,chrome=1
|
47
|
+
Etag:
|
48
|
+
- '"83df9a8094218f78b5b5710f333b01a9"'
|
49
|
+
X-Request-Id:
|
50
|
+
- d9907a8420f2d723dab29ff13bb1380e
|
51
|
+
X-Runtime:
|
52
|
+
- '0.058918'
|
53
|
+
Accept-Ranges:
|
54
|
+
- bytes
|
55
|
+
X-Varnish:
|
56
|
+
- '2681479047'
|
57
|
+
Age:
|
58
|
+
- '0'
|
59
|
+
Via:
|
60
|
+
- 1.1 varnish
|
61
|
+
X-Mh-Cache:
|
62
|
+
- appcache2; M
|
38
63
|
Front-End-Https:
|
39
|
-
- '
|
64
|
+
- 'on'
|
40
65
|
body:
|
41
66
|
encoding: UTF-8
|
42
|
-
string: '
|
43
|
-
"
|
44
|
-
|
45
|
-
21:45:21 UTC", "stream_name": "live_user_dotahut", "filtered": "unchecked",
|
46
|
-
"video_bitrate": null, "updated_on": "2013-05-12 15:53:11 UTC", "save_forever":
|
47
|
-
"true", "id": 373537869, "file_name": "2013-3-3/live_user_dotahut_1362345627.flv",
|
48
|
-
"broadcaster": "delay", "broadcast_id": 5016397072, "user_id": 38409951, "origin_name":
|
49
|
-
"3842704", "file_size": 286290322, "deleted_by_user": "false", "broadcast_part":
|
50
|
-
"4", "keyframes": null, "length": "1470", "image_url_medium": "http://static-cdn.jtvnw.net/jtv.thumbs/archive-373537869-150x113.jpg",
|
51
|
-
"servers": "35", "start_time": "2013-03-03 21:20:27 UTC", "last_part": "",
|
52
|
-
"video_codec": "AVC", "audio_codec": "aac", "parent_archive_id": null, "description":
|
53
|
-
null, "include_on_channel": "none", "status": null}, {"video_file_url": "http://store21.media21.justin.tv/archives/2013-3-3/live_user_dotahut_1362343814.flv",
|
54
|
-
"kind": null, "tag_list": "", "video_rotation": 0, "title": "DotaHut Invitational:
|
55
|
-
Fnatic vs. Mouz (Grand Finals) casted by Maut", "created_on": "2013-03-03
|
56
|
-
21:20:42 UTC", "stream_name": "live_user_dotahut", "filtered": "unchecked",
|
57
|
-
"video_bitrate": null, "updated_on": "2013-03-03 21:20:44 UTC", "save_forever":
|
58
|
-
"true", "id": 373529497, "file_name": "2013-3-3/live_user_dotahut_1362343814.flv",
|
59
|
-
"broadcaster": "delay", "broadcast_id": 5016397072, "user_id": 38409951, "origin_name":
|
60
|
-
"3842704", "file_size": 253298632, "deleted_by_user": "false", "broadcast_part":
|
61
|
-
"3", "keyframes": null, "length": "1812", "image_url_medium": "http://static-cdn.jtvnw.net/jtv.thumbs/archive-373529497-150x113.jpg",
|
62
|
-
"servers": "22", "start_time": "2013-03-03 20:50:14 UTC", "last_part": "",
|
63
|
-
"video_codec": "AVC", "audio_codec": "aac", "parent_archive_id": null, "description":
|
64
|
-
null, "include_on_channel": "none", "status": null}]'
|
67
|
+
string: '{"_total":9,"_links":{"self":"https://api.twitch.tv/kraken/channels/test_channel/videos?limit=2&offset=0&user=test_channel","next":"https://api.twitch.tv/kraken/channels/test_channel/videos?limit=2&offset=2&user=test_channel"},"videos":[{"title":"robot
|
68
|
+
greeting 2","description":"greeting","broadcast_id":null,"status":"recorded","tag_list":"","_id":"c213462","recorded_at":"2009-12-15T10:03:04Z","game":null,"length":75,"preview":null,"url":"http://www.twitch.tv/test_channel/c/213462","views":2,"broadcast_type":"highlight","_links":{"self":"https://api.twitch.tv/kraken/videos/c213462","channel":"https://api.twitch.tv/kraken/channels/test_channel"},"channel":{"name":"test_channel","display_name":"Test_channel"}},{"title":"echobot2","description":"testing
|
69
|
+
the bot","broadcast_id":null,"status":"recorded","tag_list":"","_id":"c213497","recorded_at":"2009-12-15T07:58:43Z","game":null,"length":43,"preview":null,"url":"http://www.twitch.tv/test_channel/c/213497","views":0,"broadcast_type":"highlight","_links":{"self":"https://api.twitch.tv/kraken/videos/c213497","channel":"https://api.twitch.tv/kraken/channels/test_channel"},"channel":{"name":"test_channel","display_name":"Test_channel"}}]}'
|
65
70
|
http_version:
|
66
|
-
recorded_at:
|
67
|
-
recorded_with: VCR 2.
|
71
|
+
recorded_at: Wed, 25 Feb 2015 00:39:19 GMT
|
72
|
+
recorded_with: VCR 2.9.3
|