yt 0.25.13 → 0.32.2
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|