yt 0.25.13 → 0.32.2
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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +305 -1
- data/MIT-LICENSE +1 -1
- data/README.md +86 -5
- data/YOUTUBE_IT.md +3 -3
- data/lib/yt.rb +5 -2
- data/lib/yt/actions/list.rb +3 -3
- data/lib/yt/associations/has_authentication.rb +33 -1
- data/lib/yt/associations/has_reports.rb +13 -18
- data/lib/yt/collections/assets.rb +2 -2
- data/lib/yt/collections/authentications.rb +9 -2
- data/lib/yt/collections/base.rb +3 -3
- data/lib/yt/collections/bulk_report_jobs.rb +28 -0
- data/lib/yt/collections/bulk_reports.rb +24 -0
- data/lib/yt/collections/claims.rb +22 -1
- data/lib/yt/collections/comment_threads.rb +41 -0
- data/lib/yt/collections/content_owners.rb +1 -1
- data/lib/yt/collections/group_infos.rb +27 -0
- data/lib/yt/collections/group_items.rb +45 -0
- data/lib/yt/collections/reports.rb +75 -13
- data/lib/yt/collections/revocations.rb +30 -0
- data/lib/yt/collections/video_groups.rb +29 -0
- data/lib/yt/collections/videos.rb +34 -9
- data/lib/yt/constants/geography.rb +326 -0
- data/lib/yt/errors/forbidden.rb +1 -3
- data/lib/yt/errors/no_items.rb +1 -3
- data/lib/yt/errors/request_error.rb +10 -7
- data/lib/yt/errors/server_error.rb +1 -3
- data/lib/yt/errors/unauthorized.rb +3 -3
- data/lib/yt/models/account.rb +12 -0
- data/lib/yt/models/advertising_options_set.rb +4 -4
- data/lib/yt/models/bulk_report.rb +23 -0
- data/lib/yt/models/bulk_report_job.rb +23 -0
- data/lib/yt/models/channel.rb +21 -12
- data/lib/yt/models/claim.rb +13 -2
- data/lib/yt/models/comment.rb +37 -0
- data/lib/yt/models/comment_thread.rb +50 -0
- data/lib/yt/models/content_detail.rb +6 -0
- data/lib/yt/models/content_owner.rb +31 -1
- data/lib/yt/models/group_info.rb +16 -0
- data/lib/yt/models/group_item.rb +15 -0
- data/lib/yt/models/resource.rb +3 -10
- data/lib/yt/models/revocation.rb +12 -0
- data/lib/yt/models/right_owner.rb +0 -2
- data/lib/yt/models/snippet.rb +24 -3
- data/lib/yt/models/video.rb +42 -11
- data/lib/yt/models/video_group.rb +186 -0
- data/lib/yt/request.rb +5 -3
- data/lib/yt/version.rb +2 -2
- data/spec/collections/comment_threads_spec.rb +46 -0
- data/spec/collections/playlist_items_spec.rb +1 -1
- data/spec/collections/reports_spec.rb +2 -2
- data/spec/constants/geography_spec.rb +16 -0
- data/spec/models/annotation_spec.rb +1 -1
- data/spec/models/claim_spec.rb +15 -3
- data/spec/models/comment_spec.rb +40 -0
- data/spec/models/comment_thread_spec.rb +93 -0
- data/spec/models/content_detail_spec.rb +7 -0
- data/spec/models/reference_spec.rb +2 -2
- data/spec/models/request_spec.rb +21 -0
- data/spec/models/resource_spec.rb +0 -15
- data/spec/models/video_spec.rb +1 -1
- data/spec/requests/as_account/account_spec.rb +16 -4
- data/spec/requests/as_account/authentications_spec.rb +1 -13
- data/spec/requests/as_account/channel_spec.rb +15 -45
- data/spec/requests/as_account/playlist_item_spec.rb +3 -3
- data/spec/requests/as_account/playlist_spec.rb +5 -32
- data/spec/requests/as_account/video_spec.rb +2022 -21
- data/spec/requests/as_content_owner/account_spec.rb +4 -0
- data/spec/requests/as_content_owner/bulk_report_job_spec.rb +19 -0
- data/spec/requests/as_content_owner/channel_spec.rb +59 -270
- data/spec/requests/as_content_owner/content_owner_spec.rb +89 -1
- data/spec/requests/as_content_owner/playlist_spec.rb +0 -15
- data/spec/requests/as_content_owner/video_group_spec.rb +112 -0
- data/spec/requests/as_content_owner/video_spec.rb +72 -146
- data/spec/requests/as_server_app/channel_spec.rb +1 -21
- data/spec/requests/as_server_app/comment_spec.rb +22 -0
- data/spec/requests/as_server_app/comment_thread_spec.rb +27 -0
- data/spec/requests/as_server_app/comment_threads_spec.rb +41 -0
- data/spec/requests/as_server_app/playlist_item_spec.rb +2 -2
- data/spec/requests/as_server_app/playlist_spec.rb +1 -22
- data/spec/requests/as_server_app/video_spec.rb +21 -19
- data/spec/requests/as_server_app/videos_spec.rb +5 -5
- data/spec/requests/unauthenticated/video_spec.rb +1 -9
- data/spec/spec_helper.rb +1 -1
- data/yt.gemspec +2 -1
- metadata +51 -17
- data/lib/yt/collections/ids.rb +0 -27
- data/lib/yt/config.rb +0 -54
- data/lib/yt/models/configuration.rb +0 -70
- data/lib/yt/models/description.rb +0 -58
- data/lib/yt/models/url.rb +0 -91
- data/spec/models/configuration_spec.rb +0 -44
- data/spec/models/description_spec.rb +0 -94
- data/spec/models/url_spec.rb +0 -84
- data/spec/requests/as_account/resource_spec.rb +0 -18
|
@@ -10,7 +10,7 @@ describe Yt::Channel, :server_app do
|
|
|
10
10
|
it 'returns valid snippet data' do
|
|
11
11
|
expect(channel.snippet).to be_a Yt::Snippet
|
|
12
12
|
expect(channel.title).to be_a String
|
|
13
|
-
expect(channel.description).to be_a
|
|
13
|
+
expect(channel.description).to be_a String
|
|
14
14
|
expect(channel.thumbnail_url).to be_a String
|
|
15
15
|
expect(channel.published_at).to be_a Time
|
|
16
16
|
end
|
|
@@ -34,16 +34,6 @@ describe Yt::Channel, :server_app do
|
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
context 'given an existing channel URL' do
|
|
38
|
-
let(:attrs) { {url: 'youtube.com/fullscreen'} }
|
|
39
|
-
|
|
40
|
-
specify 'provides access to its data' do
|
|
41
|
-
expect(channel.id).to eq 'UCxO1tY8h1AhOz0T4ENwmpow'
|
|
42
|
-
expect(channel.title).to eq 'Fullscreen'
|
|
43
|
-
expect(channel.privacy_status).to eq 'public'
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
37
|
context 'given an unknown channel ID' do
|
|
48
38
|
let(:attrs) { {id: 'not-a-channel-id'} }
|
|
49
39
|
|
|
@@ -61,14 +51,4 @@ describe Yt::Channel, :server_app do
|
|
|
61
51
|
it { expect(channel.videos.size).to be_zero }
|
|
62
52
|
end
|
|
63
53
|
end
|
|
64
|
-
|
|
65
|
-
context 'given an unknown channel URL' do
|
|
66
|
-
let(:attrs) { {url: 'youtube.com/--not-a-valid-url--'} }
|
|
67
|
-
|
|
68
|
-
specify 'accessing its data raises an error' do
|
|
69
|
-
expect{channel.id}.to raise_error Yt::Errors::NoItems
|
|
70
|
-
expect{channel.title}.to raise_error Yt::Errors::NoItems
|
|
71
|
-
expect{channel.status}.to raise_error Yt::Errors::NoItems
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
54
|
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'yt/models/comment'
|
|
3
|
+
|
|
4
|
+
describe Yt::Comment, :server_app do
|
|
5
|
+
subject(:comment) { Yt::Comment.new attrs }
|
|
6
|
+
|
|
7
|
+
context 'given an existing comment (non-reply) ID' do
|
|
8
|
+
let(:attrs) { {id: 'z13kc1bxpp22hzaxr04cd1kreurbjja41q00k'} }
|
|
9
|
+
|
|
10
|
+
it { expect(comment.parent_id).to be_nil }
|
|
11
|
+
it { expect(comment.text_display).to be_a String }
|
|
12
|
+
it { expect(comment.author_display_name).to be_a String }
|
|
13
|
+
it { expect(comment.like_count).to be_a Integer }
|
|
14
|
+
it { expect(comment.updated_at).to be_a Time }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
context 'given an existing comment (reply) ID' do
|
|
18
|
+
let(:attrs) { {id: 'z13kc1bxpp22hzaxr04cd1kreurbjja41q00k.1458679991141996'} }
|
|
19
|
+
|
|
20
|
+
it { expect(comment.parent_id).to be_a String }
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'yt/models/comment_thread'
|
|
3
|
+
require 'yt/models/comment'
|
|
4
|
+
|
|
5
|
+
describe Yt::CommentThread, :server_app do
|
|
6
|
+
subject(:comment_thread) { Yt::CommentThread.new attrs }
|
|
7
|
+
|
|
8
|
+
context 'given an existing comment thread ID about a channel' do
|
|
9
|
+
let(:attrs) { {id: 'z13kdnf4pursxnwr404cc3oz4zb0hjwirkg0k'} }
|
|
10
|
+
|
|
11
|
+
it { expect(comment_thread.video_id).to be_nil }
|
|
12
|
+
it { expect(comment_thread.total_reply_count).to be_an Integer }
|
|
13
|
+
it { expect(comment_thread.can_reply?).to be false }
|
|
14
|
+
it { expect(comment_thread).to be_public }
|
|
15
|
+
|
|
16
|
+
it { expect(comment_thread.top_level_comment).to be_a Yt::Comment }
|
|
17
|
+
it { expect(comment_thread.text_display).not_to be_empty }
|
|
18
|
+
it { expect(comment_thread.author_display_name).not_to be_empty }
|
|
19
|
+
it { expect(comment_thread.updated_at).to be_a Time }
|
|
20
|
+
it { expect(comment_thread.like_count).to be_a Integer }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
context 'given an comment thread ID about a video' do
|
|
24
|
+
let(:attrs) { {id: 'z134e1gyav3qt3nnr22phjeavv2zdfef0'} }
|
|
25
|
+
it { expect(comment_thread.video_id).to be_a String }
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
require 'yt/collections/comment_threads'
|
|
4
|
+
require 'yt/models/video'
|
|
5
|
+
require 'yt/models/channel'
|
|
6
|
+
|
|
7
|
+
describe Yt::Collections::CommentThreads, :server_app do
|
|
8
|
+
context "without parent association", :ruby2 do
|
|
9
|
+
subject(:comment_threads) { Yt::Collections::CommentThreads.new }
|
|
10
|
+
|
|
11
|
+
specify 'without given any of id, videoId, channelId or allThreadsRelatedToChannelId param, raise request error', :ruby2 do
|
|
12
|
+
expect{ comment_threads.size }.to raise_error(Yt::Errors::RequestError)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
specify 'with a id param, only return one comment thread' do
|
|
16
|
+
expect(comment_threads.where(id: 'z13zytsilxbexh30e233gdyyttngfjfz104').size).to eq 1
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
specify 'with a videoId param, returns comment threads for the video', focus: true do
|
|
20
|
+
expect(comment_threads.where(videoId: 'MsplPPW7tFo').size).to be > 0
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
specify 'with a channelId param, returns comment threads for the channel' do
|
|
24
|
+
expect(comment_threads.where(channelId: 'UC-lHJZR3Gqxm24_Vd_AJ5Yw').size).to be > 0
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
context "with parent association", :ruby2 do
|
|
29
|
+
subject(:comment_threads) { Yt::Collections::CommentThreads.new parent: parent}
|
|
30
|
+
|
|
31
|
+
context "parent as video" do
|
|
32
|
+
let(:parent) { Yt::Models::Video.new id: 'MsplPPW7tFo' }
|
|
33
|
+
it { expect(comment_threads.size).to be > 0 }
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
context "parent as channel" do
|
|
37
|
+
let(:parent) { Yt::Models::Channel.new id: 'UC-lHJZR3Gqxm24_Vd_AJ5Yw' }
|
|
38
|
+
it { expect(comment_threads.size).to be > 0 }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -5,12 +5,12 @@ describe Yt::PlaylistItem, :server_app do
|
|
|
5
5
|
subject(:item) { Yt::PlaylistItem.new id: id }
|
|
6
6
|
|
|
7
7
|
context 'given an existing playlist item' do
|
|
8
|
-
let(:id) { '
|
|
8
|
+
let(:id) { 'UExTV1lrWXpPclBNVDlwSkc1U3Q1RzBXRGFsaFJ6R2tVNC4yQUE2Q0JEMTk4NTM3RTZC' }
|
|
9
9
|
|
|
10
10
|
it 'returns valid snippet data' do
|
|
11
11
|
expect(item.snippet).to be_a Yt::Snippet
|
|
12
12
|
expect(item.title).to be_a String
|
|
13
|
-
expect(item.description).to be_a
|
|
13
|
+
expect(item.description).to be_a String
|
|
14
14
|
expect(item.thumbnail_url).to be_a String
|
|
15
15
|
expect(item.published_at).to be_a Time
|
|
16
16
|
expect(item.channel_id).to be_a String
|
|
@@ -10,7 +10,7 @@ describe Yt::Playlist, :server_app do
|
|
|
10
10
|
it 'returns valid snippet data' do
|
|
11
11
|
expect(playlist.snippet).to be_a Yt::Snippet
|
|
12
12
|
expect(playlist.title).to be_a String
|
|
13
|
-
expect(playlist.description).to be_a
|
|
13
|
+
expect(playlist.description).to be_a String
|
|
14
14
|
expect(playlist.thumbnail_url).to be_a String
|
|
15
15
|
expect(playlist.published_at).to be_a Time
|
|
16
16
|
expect(playlist.tags).to be_an Array
|
|
@@ -24,31 +24,10 @@ describe Yt::Playlist, :server_app do
|
|
|
24
24
|
it { expect(playlist.playlist_items.first).to be_a Yt::PlaylistItem }
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
context 'given an existing playlist URL' do
|
|
28
|
-
let(:attrs) { {url: 'https://www.youtube.com/playlist?list=LLxO1tY8h1AhOz0T4ENwmpow'} }
|
|
29
|
-
|
|
30
|
-
specify 'provides access to its data' do
|
|
31
|
-
expect(playlist.id).to eq 'LLxO1tY8h1AhOz0T4ENwmpow'
|
|
32
|
-
expect(playlist.title).to eq 'Liked videos'
|
|
33
|
-
expect(playlist.privacy_status).to eq 'public'
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
27
|
context 'given an unknown playlist' do
|
|
38
28
|
let(:attrs) { {id: 'not-a-playlist-id'} }
|
|
39
29
|
|
|
40
30
|
it { expect{playlist.snippet}.to raise_error Yt::Errors::NoItems }
|
|
41
31
|
it { expect{playlist.status}.to raise_error Yt::Errors::NoItems }
|
|
42
32
|
end
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
context 'given an unknown playlist URL' do
|
|
46
|
-
let(:attrs) { {url: 'youtube.com/--not-a-valid-url--'} }
|
|
47
|
-
|
|
48
|
-
specify 'accessing its data raises an error' do
|
|
49
|
-
expect{playlist.id}.to raise_error Yt::Errors::NoItems
|
|
50
|
-
expect{playlist.title}.to raise_error Yt::Errors::NoItems
|
|
51
|
-
expect{playlist.status}.to raise_error Yt::Errors::NoItems
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
33
|
end
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
require 'yt/models/video'
|
|
3
|
+
require 'yt/collections/comment_threads'
|
|
3
4
|
|
|
4
5
|
describe Yt::Video, :server_app do
|
|
5
6
|
subject(:video) { Yt::Video.new attrs }
|
|
6
7
|
|
|
7
8
|
context 'given an existing video ID' do
|
|
8
|
-
let(:attrs) { {id: '
|
|
9
|
+
let(:attrs) { {id: '9bZkp7q19f0'} }
|
|
9
10
|
|
|
10
11
|
it { expect(video.content_detail).to be_a Yt::ContentDetail }
|
|
11
12
|
|
|
12
13
|
it 'returns valid snippet data' do
|
|
13
14
|
expect(video.snippet).to be_a Yt::Snippet
|
|
14
15
|
expect(video.title).to be_a String
|
|
15
|
-
expect(video.description).to be_a
|
|
16
|
+
expect(video.description).to be_a String
|
|
16
17
|
expect(video.thumbnail_url).to be_a String
|
|
17
18
|
expect(video.published_at).to be_a Time
|
|
18
19
|
expect(video.tags).to be_an Array
|
|
19
20
|
expect(video.channel_id).to be_a String
|
|
20
21
|
expect(video.channel_title).to be_a String
|
|
22
|
+
expect(video.channel_url).to be_a String
|
|
21
23
|
expect(video.category_id).to be_a String
|
|
22
24
|
expect(video.live_broadcast_content).to be_a String
|
|
23
25
|
end
|
|
@@ -26,16 +28,6 @@ describe Yt::Video, :server_app do
|
|
|
26
28
|
it { expect(video.statistics_set).to be_a Yt::StatisticsSet }
|
|
27
29
|
end
|
|
28
30
|
|
|
29
|
-
context 'given an existing video URL' do
|
|
30
|
-
let(:attrs) { {url: 'https://www.youtube.com/watch?v=MESycYJytkU&list=LLxO1tY8h1AhOz0T4ENwmpow'} }
|
|
31
|
-
|
|
32
|
-
specify 'provides access to its data' do
|
|
33
|
-
expect(video.id).to eq 'MESycYJytkU'
|
|
34
|
-
expect(video.title).to eq 'Fullscreen Creator Platform'
|
|
35
|
-
expect(video.privacy_status).to eq 'public'
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
31
|
context 'given an unknown video ID' do
|
|
40
32
|
let(:attrs) { {id: 'not-a-video-id'} }
|
|
41
33
|
|
|
@@ -45,14 +37,24 @@ describe Yt::Video, :server_app do
|
|
|
45
37
|
it { expect{video.statistics_set}.to raise_error Yt::Errors::NoItems }
|
|
46
38
|
end
|
|
47
39
|
|
|
48
|
-
|
|
49
|
-
let(:attrs) { {
|
|
40
|
+
describe 'associations' do
|
|
41
|
+
let(:attrs) { {id: 'MsplPPW7tFo'} }
|
|
42
|
+
|
|
43
|
+
describe '#comment_threads' do
|
|
44
|
+
it { expect(video.comment_threads).to be_a Yt::Collections::CommentThreads }
|
|
45
|
+
it { expect(video.comment_threads.first.top_level_comment).to be_a Yt::Models::Comment }
|
|
46
|
+
end
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
describe '#comment_threads.each_cons' do
|
|
49
|
+
it {
|
|
50
|
+
comment_threads = []
|
|
51
|
+
video.comment_threads.each_cons(2).take_while do |items|
|
|
52
|
+
comment_threads += items
|
|
53
|
+
comment_threads.size < 6
|
|
54
|
+
end
|
|
55
|
+
expect(comment_threads.size).to be 6
|
|
56
|
+
}
|
|
55
57
|
end
|
|
56
58
|
end
|
|
59
|
+
end
|
|
57
60
|
|
|
58
|
-
end
|
|
@@ -14,7 +14,7 @@ describe Yt::Collections::Videos, :server_app do
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
context 'with a list of video IDs, only returns the videos matching those IDs' do
|
|
17
|
-
let(:video_id) { '
|
|
17
|
+
let(:video_id) { '9bZkp7q19f0' }
|
|
18
18
|
let(:videos_by_id) { videos.where id: "#{video_id},invalid" }
|
|
19
19
|
|
|
20
20
|
it { expect(videos_by_id.size).to be 1 }
|
|
@@ -22,13 +22,13 @@ describe Yt::Collections::Videos, :server_app do
|
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
specify 'with a chart parameter, only returns videos of that chart', :ruby2 do
|
|
25
|
-
expect(videos.where(chart: 'mostPopular').size).to be
|
|
25
|
+
expect(videos.where(chart: 'mostPopular').size).to be 200
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
context 'with a list of parts' do
|
|
29
|
-
let(:video_id) { '
|
|
29
|
+
let(:video_id) { '9bZkp7q19f0' }
|
|
30
30
|
let(:part) { 'statistics,contentDetails' }
|
|
31
|
-
let(:video) { videos.where(id: '
|
|
31
|
+
let(:video) { videos.where(id: '9bZkp7q19f0', part: part).first }
|
|
32
32
|
|
|
33
33
|
specify 'load ONLY the specified parts of the videos' do
|
|
34
34
|
expect(video.instance_variable_defined? :@snippet).to be false
|
|
@@ -37,4 +37,4 @@ describe Yt::Collections::Videos, :server_app do
|
|
|
37
37
|
expect(video.instance_variable_defined? :@content_detail).to be true
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
|
-
end
|
|
40
|
+
end
|
|
@@ -5,18 +5,10 @@ describe Yt::Video do
|
|
|
5
5
|
subject(:video) { Yt::Video.new id: id }
|
|
6
6
|
|
|
7
7
|
context 'given a public video with annotations' do
|
|
8
|
-
let(:id) { '
|
|
8
|
+
let(:id) { '9bZkp7q19f0' }
|
|
9
9
|
|
|
10
10
|
it { expect(video.annotations).to be_a Yt::Collections::Annotations }
|
|
11
11
|
it { expect(video.annotations.first).to be_a Yt::Annotation }
|
|
12
12
|
it { expect(video.annotations.size).to be > 0 }
|
|
13
13
|
end
|
|
14
|
-
|
|
15
|
-
context 'given a private video' do
|
|
16
|
-
let(:id) { 'JzDEc54FVTc' }
|
|
17
|
-
|
|
18
|
-
it { expect(video.annotations).to be_a Yt::Collections::Annotations }
|
|
19
|
-
it { expect(video.annotations.count).to be_zero }
|
|
20
|
-
it { expect(video.annotations.size).to be_zero }
|
|
21
|
-
end
|
|
22
14
|
end
|
data/spec/spec_helper.rb
CHANGED
data/yt.gemspec
CHANGED
|
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
|
22
22
|
spec.require_paths = ["lib"]
|
|
23
23
|
|
|
24
24
|
spec.add_dependency 'activesupport' # '3 (Ruby 1.9) or 4 (Ruby 2)'
|
|
25
|
+
spec.add_dependency 'yt-support', '>= 0.1'
|
|
25
26
|
|
|
26
27
|
# For development / Code coverage / Documentation
|
|
27
28
|
spec.add_development_dependency 'bundler' #, '~> 1.0'
|
|
@@ -29,4 +30,4 @@ Gem::Specification.new do |spec|
|
|
|
29
30
|
spec.add_development_dependency 'rake' #, '~> 10.0'
|
|
30
31
|
spec.add_development_dependency 'yard' #, '~> 0.8.0'
|
|
31
32
|
spec.add_development_dependency 'coveralls' #, '~> 0.7.0'
|
|
32
|
-
end
|
|
33
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: yt
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.32.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Claudio Baccigalupo
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2018-05-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -24,6 +24,20 @@ dependencies:
|
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: yt-support
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0.1'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0.1'
|
|
27
41
|
- !ruby/object:Gem::Dependency
|
|
28
42
|
name: bundler
|
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -134,15 +148,19 @@ files:
|
|
|
134
148
|
- lib/yt/collections/assets.rb
|
|
135
149
|
- lib/yt/collections/authentications.rb
|
|
136
150
|
- lib/yt/collections/base.rb
|
|
151
|
+
- lib/yt/collections/bulk_report_jobs.rb
|
|
152
|
+
- lib/yt/collections/bulk_reports.rb
|
|
137
153
|
- lib/yt/collections/channels.rb
|
|
138
154
|
- lib/yt/collections/claim_histories.rb
|
|
139
155
|
- lib/yt/collections/claims.rb
|
|
156
|
+
- lib/yt/collections/comment_threads.rb
|
|
140
157
|
- lib/yt/collections/content_details.rb
|
|
141
158
|
- lib/yt/collections/content_owner_details.rb
|
|
142
159
|
- lib/yt/collections/content_owners.rb
|
|
143
160
|
- lib/yt/collections/device_flows.rb
|
|
144
161
|
- lib/yt/collections/file_details.rb
|
|
145
|
-
- lib/yt/collections/
|
|
162
|
+
- lib/yt/collections/group_infos.rb
|
|
163
|
+
- lib/yt/collections/group_items.rb
|
|
146
164
|
- lib/yt/collections/live_streaming_details.rb
|
|
147
165
|
- lib/yt/collections/ownerships.rb
|
|
148
166
|
- lib/yt/collections/partnered_channels.rb
|
|
@@ -156,6 +174,7 @@ files:
|
|
|
156
174
|
- lib/yt/collections/reports.rb
|
|
157
175
|
- lib/yt/collections/resources.rb
|
|
158
176
|
- lib/yt/collections/resumable_sessions.rb
|
|
177
|
+
- lib/yt/collections/revocations.rb
|
|
159
178
|
- lib/yt/collections/snippets.rb
|
|
160
179
|
- lib/yt/collections/statistics_sets.rb
|
|
161
180
|
- lib/yt/collections/statuses.rb
|
|
@@ -164,8 +183,9 @@ files:
|
|
|
164
183
|
- lib/yt/collections/subscriptions.rb
|
|
165
184
|
- lib/yt/collections/user_infos.rb
|
|
166
185
|
- lib/yt/collections/video_categories.rb
|
|
186
|
+
- lib/yt/collections/video_groups.rb
|
|
167
187
|
- lib/yt/collections/videos.rb
|
|
168
|
-
- lib/yt/
|
|
188
|
+
- lib/yt/constants/geography.rb
|
|
169
189
|
- lib/yt/errors/forbidden.rb
|
|
170
190
|
- lib/yt/errors/missing_auth.rb
|
|
171
191
|
- lib/yt/errors/no_items.rb
|
|
@@ -180,17 +200,21 @@ files:
|
|
|
180
200
|
- lib/yt/models/asset_snippet.rb
|
|
181
201
|
- lib/yt/models/authentication.rb
|
|
182
202
|
- lib/yt/models/base.rb
|
|
203
|
+
- lib/yt/models/bulk_report.rb
|
|
204
|
+
- lib/yt/models/bulk_report_job.rb
|
|
183
205
|
- lib/yt/models/channel.rb
|
|
184
206
|
- lib/yt/models/claim.rb
|
|
185
207
|
- lib/yt/models/claim_event.rb
|
|
186
208
|
- lib/yt/models/claim_history.rb
|
|
187
|
-
- lib/yt/models/
|
|
209
|
+
- lib/yt/models/comment.rb
|
|
210
|
+
- lib/yt/models/comment_thread.rb
|
|
188
211
|
- lib/yt/models/content_detail.rb
|
|
189
212
|
- lib/yt/models/content_owner.rb
|
|
190
213
|
- lib/yt/models/content_owner_detail.rb
|
|
191
|
-
- lib/yt/models/description.rb
|
|
192
214
|
- lib/yt/models/device_flow.rb
|
|
193
215
|
- lib/yt/models/file_detail.rb
|
|
216
|
+
- lib/yt/models/group_info.rb
|
|
217
|
+
- lib/yt/models/group_item.rb
|
|
194
218
|
- lib/yt/models/id.rb
|
|
195
219
|
- lib/yt/models/iterator.rb
|
|
196
220
|
- lib/yt/models/live_streaming_detail.rb
|
|
@@ -205,19 +229,21 @@ files:
|
|
|
205
229
|
- lib/yt/models/reference.rb
|
|
206
230
|
- lib/yt/models/resource.rb
|
|
207
231
|
- lib/yt/models/resumable_session.rb
|
|
232
|
+
- lib/yt/models/revocation.rb
|
|
208
233
|
- lib/yt/models/right_owner.rb
|
|
209
234
|
- lib/yt/models/snippet.rb
|
|
210
235
|
- lib/yt/models/statistics_set.rb
|
|
211
236
|
- lib/yt/models/status.rb
|
|
212
237
|
- lib/yt/models/subscription.rb
|
|
213
238
|
- lib/yt/models/timestamp.rb
|
|
214
|
-
- lib/yt/models/url.rb
|
|
215
239
|
- lib/yt/models/user_info.rb
|
|
216
240
|
- lib/yt/models/video.rb
|
|
217
241
|
- lib/yt/models/video_category.rb
|
|
242
|
+
- lib/yt/models/video_group.rb
|
|
218
243
|
- lib/yt/request.rb
|
|
219
244
|
- lib/yt/version.rb
|
|
220
245
|
- spec/collections/claims_spec.rb
|
|
246
|
+
- spec/collections/comment_threads_spec.rb
|
|
221
247
|
- spec/collections/playlist_items_spec.rb
|
|
222
248
|
- spec/collections/playlists_spec.rb
|
|
223
249
|
- spec/collections/policies_spec.rb
|
|
@@ -225,6 +251,7 @@ files:
|
|
|
225
251
|
- spec/collections/reports_spec.rb
|
|
226
252
|
- spec/collections/subscriptions_spec.rb
|
|
227
253
|
- spec/collections/videos_spec.rb
|
|
254
|
+
- spec/constants/geography_spec.rb
|
|
228
255
|
- spec/errors/forbidden_spec.rb
|
|
229
256
|
- spec/errors/missing_auth_spec.rb
|
|
230
257
|
- spec/errors/no_items_spec.rb
|
|
@@ -238,10 +265,10 @@ files:
|
|
|
238
265
|
- spec/models/claim_event_spec.rb
|
|
239
266
|
- spec/models/claim_history_spec.rb
|
|
240
267
|
- spec/models/claim_spec.rb
|
|
241
|
-
- spec/models/
|
|
268
|
+
- spec/models/comment_spec.rb
|
|
269
|
+
- spec/models/comment_thread_spec.rb
|
|
242
270
|
- spec/models/content_detail_spec.rb
|
|
243
271
|
- spec/models/content_owner_detail_spec.rb
|
|
244
|
-
- spec/models/description_spec.rb
|
|
245
272
|
- spec/models/file_detail_spec.rb
|
|
246
273
|
- spec/models/live_streaming_detail_spec.rb
|
|
247
274
|
- spec/models/ownership_spec.rb
|
|
@@ -259,7 +286,6 @@ files:
|
|
|
259
286
|
- spec/models/statistics_set_spec.rb
|
|
260
287
|
- spec/models/status_spec.rb
|
|
261
288
|
- spec/models/subscription_spec.rb
|
|
262
|
-
- spec/models/url_spec.rb
|
|
263
289
|
- spec/models/video_category_spec.rb
|
|
264
290
|
- spec/models/video_spec.rb
|
|
265
291
|
- spec/requests/as_account/account_spec.rb
|
|
@@ -268,21 +294,25 @@ files:
|
|
|
268
294
|
- spec/requests/as_account/channels_spec.rb
|
|
269
295
|
- spec/requests/as_account/playlist_item_spec.rb
|
|
270
296
|
- spec/requests/as_account/playlist_spec.rb
|
|
271
|
-
- spec/requests/as_account/resource_spec.rb
|
|
272
297
|
- spec/requests/as_account/thumbnail.jpg
|
|
273
298
|
- spec/requests/as_account/video.mp4
|
|
274
299
|
- spec/requests/as_account/video_spec.rb
|
|
275
300
|
- spec/requests/as_content_owner/account_spec.rb
|
|
276
301
|
- spec/requests/as_content_owner/advertising_options_set_spec.rb
|
|
277
302
|
- spec/requests/as_content_owner/asset_spec.rb
|
|
303
|
+
- spec/requests/as_content_owner/bulk_report_job_spec.rb
|
|
278
304
|
- spec/requests/as_content_owner/channel_spec.rb
|
|
279
305
|
- spec/requests/as_content_owner/claim_history_spec.rb
|
|
280
306
|
- spec/requests/as_content_owner/content_owner_spec.rb
|
|
281
307
|
- spec/requests/as_content_owner/match_policy_spec.rb
|
|
282
308
|
- spec/requests/as_content_owner/ownership_spec.rb
|
|
283
309
|
- spec/requests/as_content_owner/playlist_spec.rb
|
|
310
|
+
- spec/requests/as_content_owner/video_group_spec.rb
|
|
284
311
|
- spec/requests/as_content_owner/video_spec.rb
|
|
285
312
|
- spec/requests/as_server_app/channel_spec.rb
|
|
313
|
+
- spec/requests/as_server_app/comment_spec.rb
|
|
314
|
+
- spec/requests/as_server_app/comment_thread_spec.rb
|
|
315
|
+
- spec/requests/as_server_app/comment_threads_spec.rb
|
|
286
316
|
- spec/requests/as_server_app/playlist_item_spec.rb
|
|
287
317
|
- spec/requests/as_server_app/playlist_spec.rb
|
|
288
318
|
- spec/requests/as_server_app/video_spec.rb
|
|
@@ -312,13 +342,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
312
342
|
version: '0'
|
|
313
343
|
requirements: []
|
|
314
344
|
rubyforge_project:
|
|
315
|
-
rubygems_version: 2.
|
|
345
|
+
rubygems_version: 2.7.6
|
|
316
346
|
signing_key:
|
|
317
347
|
specification_version: 4
|
|
318
348
|
summary: Yt makes it easy to interact with Youtube V3 API by providing a modular,
|
|
319
349
|
intuitive and tested Ruby-style API.
|
|
320
350
|
test_files:
|
|
321
351
|
- spec/collections/claims_spec.rb
|
|
352
|
+
- spec/collections/comment_threads_spec.rb
|
|
322
353
|
- spec/collections/playlist_items_spec.rb
|
|
323
354
|
- spec/collections/playlists_spec.rb
|
|
324
355
|
- spec/collections/policies_spec.rb
|
|
@@ -326,6 +357,7 @@ test_files:
|
|
|
326
357
|
- spec/collections/reports_spec.rb
|
|
327
358
|
- spec/collections/subscriptions_spec.rb
|
|
328
359
|
- spec/collections/videos_spec.rb
|
|
360
|
+
- spec/constants/geography_spec.rb
|
|
329
361
|
- spec/errors/forbidden_spec.rb
|
|
330
362
|
- spec/errors/missing_auth_spec.rb
|
|
331
363
|
- spec/errors/no_items_spec.rb
|
|
@@ -339,10 +371,10 @@ test_files:
|
|
|
339
371
|
- spec/models/claim_event_spec.rb
|
|
340
372
|
- spec/models/claim_history_spec.rb
|
|
341
373
|
- spec/models/claim_spec.rb
|
|
342
|
-
- spec/models/
|
|
374
|
+
- spec/models/comment_spec.rb
|
|
375
|
+
- spec/models/comment_thread_spec.rb
|
|
343
376
|
- spec/models/content_detail_spec.rb
|
|
344
377
|
- spec/models/content_owner_detail_spec.rb
|
|
345
|
-
- spec/models/description_spec.rb
|
|
346
378
|
- spec/models/file_detail_spec.rb
|
|
347
379
|
- spec/models/live_streaming_detail_spec.rb
|
|
348
380
|
- spec/models/ownership_spec.rb
|
|
@@ -360,7 +392,6 @@ test_files:
|
|
|
360
392
|
- spec/models/statistics_set_spec.rb
|
|
361
393
|
- spec/models/status_spec.rb
|
|
362
394
|
- spec/models/subscription_spec.rb
|
|
363
|
-
- spec/models/url_spec.rb
|
|
364
395
|
- spec/models/video_category_spec.rb
|
|
365
396
|
- spec/models/video_spec.rb
|
|
366
397
|
- spec/requests/as_account/account_spec.rb
|
|
@@ -369,21 +400,25 @@ test_files:
|
|
|
369
400
|
- spec/requests/as_account/channels_spec.rb
|
|
370
401
|
- spec/requests/as_account/playlist_item_spec.rb
|
|
371
402
|
- spec/requests/as_account/playlist_spec.rb
|
|
372
|
-
- spec/requests/as_account/resource_spec.rb
|
|
373
403
|
- spec/requests/as_account/thumbnail.jpg
|
|
374
404
|
- spec/requests/as_account/video.mp4
|
|
375
405
|
- spec/requests/as_account/video_spec.rb
|
|
376
406
|
- spec/requests/as_content_owner/account_spec.rb
|
|
377
407
|
- spec/requests/as_content_owner/advertising_options_set_spec.rb
|
|
378
408
|
- spec/requests/as_content_owner/asset_spec.rb
|
|
409
|
+
- spec/requests/as_content_owner/bulk_report_job_spec.rb
|
|
379
410
|
- spec/requests/as_content_owner/channel_spec.rb
|
|
380
411
|
- spec/requests/as_content_owner/claim_history_spec.rb
|
|
381
412
|
- spec/requests/as_content_owner/content_owner_spec.rb
|
|
382
413
|
- spec/requests/as_content_owner/match_policy_spec.rb
|
|
383
414
|
- spec/requests/as_content_owner/ownership_spec.rb
|
|
384
415
|
- spec/requests/as_content_owner/playlist_spec.rb
|
|
416
|
+
- spec/requests/as_content_owner/video_group_spec.rb
|
|
385
417
|
- spec/requests/as_content_owner/video_spec.rb
|
|
386
418
|
- spec/requests/as_server_app/channel_spec.rb
|
|
419
|
+
- spec/requests/as_server_app/comment_spec.rb
|
|
420
|
+
- spec/requests/as_server_app/comment_thread_spec.rb
|
|
421
|
+
- spec/requests/as_server_app/comment_threads_spec.rb
|
|
387
422
|
- spec/requests/as_server_app/playlist_item_spec.rb
|
|
388
423
|
- spec/requests/as_server_app/playlist_spec.rb
|
|
389
424
|
- spec/requests/as_server_app/video_spec.rb
|
|
@@ -392,4 +427,3 @@ test_files:
|
|
|
392
427
|
- spec/spec_helper.rb
|
|
393
428
|
- spec/support/fail_matcher.rb
|
|
394
429
|
- spec/support/global_hooks.rb
|
|
395
|
-
has_rdoc:
|