yt 0.32.5 → 0.32.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/yt/collections/playlist_items.rb +10 -1
- data/lib/yt/models/account.rb +20 -0
- data/lib/yt/models/channel.rb +2 -1
- data/lib/yt/models/content_owner.rb +20 -0
- data/lib/yt/models/playlist.rb +12 -2
- data/lib/yt/models/playlist_item.rb +8 -1
- data/lib/yt/models/statistics_set.rb +2 -1
- data/lib/yt/models/video.rb +15 -2
- data/lib/yt/version.rb +1 -1
- data/spec/requests/as_content_owner/video_spec.rb +12 -0
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e19662ddb23d57f544dd42ab0ceb974e0cf7b7a0aadb2137a298c9a5f0afe2cf
|
4
|
+
data.tar.gz: c02517119190c7eda5f532305330b148979ca2bd04b38485915717fb41c5125c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d19c4c4c947855487e23d07fd89f6b11719af3cb11b8bc3d73594f4703be7f7990652050ac03449359d6861be02cd43eea2599839e2f9b8c0f304449bf084cf
|
7
|
+
data.tar.gz: d794dfbbe1eddcaa98bf0ec0daa36983b7e69b97c8aafa060418999ed5a5806dbf3bbec18fe772a2383f28033f87b8f1364c4742f74abdc6b1a201a1209935a4
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,14 @@ For more information about changelogs, check
|
|
7
7
|
[Vandamme](http://tech-angels.github.io/vandamme).
|
8
8
|
|
9
9
|
|
10
|
+
## 0.32.6 - 2020-02-07
|
11
|
+
|
12
|
+
* [FEATURE] Allow partnered channels to delete playlist item.
|
13
|
+
* [FEATURE] Allow partnered channels to update video.
|
14
|
+
* [FEATURE] Allow partnered channels to update playlist.
|
15
|
+
* [FEATURE] Allow partnered channels to upload thumbnail.
|
16
|
+
* [FEATURE] Allow partnered channels to create playlist item.
|
17
|
+
|
10
18
|
## 0.32.5 - 2019-11-06
|
11
19
|
|
12
20
|
* [BUGFIX] Fix `MatchPolicy#update` and `Asset#update` by using `PUT` instead of `PATCH`
|
@@ -48,6 +48,15 @@ module Yt
|
|
48
48
|
def insert_parts
|
49
49
|
{snippet: {keys: [:playlist_id, :resource_id, :position]}}
|
50
50
|
end
|
51
|
+
|
52
|
+
# For inserting a playlist item with content owner auth.
|
53
|
+
# @see https://developers.google.com/youtube/v3/docs/playlistItems/insert
|
54
|
+
def insert_params
|
55
|
+
params = super
|
56
|
+
params[:params] ||= {}
|
57
|
+
params[:params].merge! @auth.insert_playlist_item_params
|
58
|
+
params
|
59
|
+
end
|
51
60
|
end
|
52
61
|
end
|
53
|
-
end
|
62
|
+
end
|
data/lib/yt/models/account.rb
CHANGED
@@ -192,6 +192,10 @@ module Yt
|
|
192
192
|
{mine: true}
|
193
193
|
end
|
194
194
|
|
195
|
+
def playlist_items_params
|
196
|
+
{}
|
197
|
+
end
|
198
|
+
|
195
199
|
# @private
|
196
200
|
# Tells `has_many :resumable_sessions` what path to hit to upload a file.
|
197
201
|
def upload_path
|
@@ -223,6 +227,22 @@ module Yt
|
|
223
227
|
def upload_content_type
|
224
228
|
'video/*'
|
225
229
|
end
|
230
|
+
|
231
|
+
def update_video_params
|
232
|
+
{}
|
233
|
+
end
|
234
|
+
|
235
|
+
def update_playlist_params
|
236
|
+
{}
|
237
|
+
end
|
238
|
+
|
239
|
+
def upload_thumbnail_params
|
240
|
+
{}
|
241
|
+
end
|
242
|
+
|
243
|
+
def insert_playlist_item_params
|
244
|
+
{}
|
245
|
+
end
|
226
246
|
end
|
227
247
|
end
|
228
248
|
end
|
data/lib/yt/models/channel.rb
CHANGED
@@ -283,7 +283,8 @@ module Yt
|
|
283
283
|
# @private
|
284
284
|
# Tells `has_reports` to retrieve the reports from YouTube Analytics API
|
285
285
|
# either as a Channel or as a Content Owner.
|
286
|
-
# @see https://developers.google.com/youtube/analytics/
|
286
|
+
# @see https://developers.google.com/youtube/analytics/channel_reports
|
287
|
+
# @see https://developers.google.com/youtube/analytics/content_owner_reports
|
287
288
|
def reports_params
|
288
289
|
{}.tap do |params|
|
289
290
|
if auth.owner_name
|
@@ -102,6 +102,26 @@ module Yt
|
|
102
102
|
def video_groups_params
|
103
103
|
{on_behalf_of_content_owner: @owner_name}
|
104
104
|
end
|
105
|
+
|
106
|
+
def playlist_items_params
|
107
|
+
{on_behalf_of_content_owner: @owner_name}
|
108
|
+
end
|
109
|
+
|
110
|
+
def update_video_params
|
111
|
+
{on_behalf_of_content_owner: @owner_name}
|
112
|
+
end
|
113
|
+
|
114
|
+
def update_playlist_params
|
115
|
+
{on_behalf_of_content_owner: @owner_name}
|
116
|
+
end
|
117
|
+
|
118
|
+
def upload_thumbnail_params
|
119
|
+
{on_behalf_of_content_owner: @owner_name}
|
120
|
+
end
|
121
|
+
|
122
|
+
def insert_playlist_item_params
|
123
|
+
{on_behalf_of_content_owner: @owner_name}
|
124
|
+
end
|
105
125
|
end
|
106
126
|
end
|
107
127
|
end
|
data/lib/yt/models/playlist.rb
CHANGED
@@ -197,7 +197,8 @@ module Yt
|
|
197
197
|
# @private
|
198
198
|
# Tells `has_reports` to retrieve the reports from YouTube Analytics API
|
199
199
|
# either as a Channel or as a Content Owner.
|
200
|
-
# @see https://developers.google.com/youtube/analytics/
|
200
|
+
# @see https://developers.google.com/youtube/analytics/channel_reports
|
201
|
+
# @see https://developers.google.com/youtube/analytics/content_owner_reports
|
201
202
|
def reports_params
|
202
203
|
{}.tap do |params|
|
203
204
|
if auth.owner_name
|
@@ -231,6 +232,15 @@ module Yt
|
|
231
232
|
params[:resource_id] ||= {kind: 'youtube#video', videoId: video_id}
|
232
233
|
end
|
233
234
|
end
|
235
|
+
|
236
|
+
# For updating playlist with content owner auth.
|
237
|
+
# @see https://developers.google.com/youtube/v3/docs/playlists/update
|
238
|
+
def update_params
|
239
|
+
params = super
|
240
|
+
params[:params] ||= {}
|
241
|
+
params[:params].merge! auth.update_playlist_params
|
242
|
+
params
|
243
|
+
end
|
234
244
|
end
|
235
245
|
end
|
236
|
-
end
|
246
|
+
end
|
@@ -101,6 +101,13 @@ module Yt
|
|
101
101
|
{kind: 'youtube#video', videoId: video_id}
|
102
102
|
end
|
103
103
|
|
104
|
+
def delete_params
|
105
|
+
super.tap do |params|
|
106
|
+
params[:params] ||= {}
|
107
|
+
params[:params].merge! @auth.playlist_items_params
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
104
111
|
# @see https://developers.google.com/youtube/v3/docs/playlistItems/update
|
105
112
|
def update_parts
|
106
113
|
keys = [:position, :playlist_id, :resource_id]
|
@@ -109,4 +116,4 @@ module Yt
|
|
109
116
|
end
|
110
117
|
end
|
111
118
|
end
|
112
|
-
end
|
119
|
+
end
|
@@ -6,6 +6,7 @@ module Yt
|
|
6
6
|
# Encapsulates statistics about the resource, such as the number of times
|
7
7
|
# the resource has been viewed or liked.
|
8
8
|
# @see https://developers.google.com/youtube/v3/docs/videos#resource
|
9
|
+
# @see https://developers.google.com/youtube/v3/docs/channels#resource-representation
|
9
10
|
class StatisticsSet < Base
|
10
11
|
attr_reader :data
|
11
12
|
|
@@ -23,4 +24,4 @@ module Yt
|
|
23
24
|
has_attribute :hidden_subscriber_count
|
24
25
|
end
|
25
26
|
end
|
26
|
-
end
|
27
|
+
end
|
data/lib/yt/models/video.rb
CHANGED
@@ -621,7 +621,8 @@ module Yt
|
|
621
621
|
# @private
|
622
622
|
# Tells `has_reports` to retrieve the reports from YouTube Analytics API
|
623
623
|
# either as a Channel or as a Content Owner.
|
624
|
-
# @see https://developers.google.com/youtube/analytics/
|
624
|
+
# @see https://developers.google.com/youtube/analytics/channel_reports
|
625
|
+
# @see https://developers.google.com/youtube/analytics/content_owner_reports
|
625
626
|
def reports_params
|
626
627
|
{}.tap do |params|
|
627
628
|
if auth.owner_name
|
@@ -642,8 +643,11 @@ module Yt
|
|
642
643
|
# @private
|
643
644
|
# Tells `has_many :resumable_sessions` what params are set for the object
|
644
645
|
# associated to the uploaded file.
|
646
|
+
# https://developers.google.com/youtube/v3/docs/thumbnails/set
|
645
647
|
def upload_params
|
646
|
-
{video_id: id}
|
648
|
+
params = {video_id: id}
|
649
|
+
params.merge! auth.upload_thumbnail_params
|
650
|
+
params
|
647
651
|
end
|
648
652
|
|
649
653
|
# @private
|
@@ -667,6 +671,15 @@ module Yt
|
|
667
671
|
{snippet: snippet, status: {keys: status_keys}}
|
668
672
|
end
|
669
673
|
|
674
|
+
# For updating video with content owner auth.
|
675
|
+
# @see https://developers.google.com/youtube/v3/docs/videos/update
|
676
|
+
def update_params
|
677
|
+
params = super
|
678
|
+
params[:params] ||= {}
|
679
|
+
params[:params].merge! auth.update_video_params
|
680
|
+
params
|
681
|
+
end
|
682
|
+
|
670
683
|
# NOTE: Another irrational behavior of YouTube API. If you are setting a
|
671
684
|
# video to public/unlisted then you should *not* pass publishAt at any
|
672
685
|
# cost, otherwise the API will fail (since setting publishAt means you
|
data/lib/yt/version.rb
CHANGED
@@ -1208,4 +1208,16 @@ describe Yt::Video, :partner do
|
|
1208
1208
|
end
|
1209
1209
|
end
|
1210
1210
|
end
|
1211
|
+
|
1212
|
+
context 'given a video of a partnered channel' do
|
1213
|
+
let(:id) { 'kocTIjlZwGo' }
|
1214
|
+
|
1215
|
+
describe 'title can be updated' do
|
1216
|
+
let!(:old_title) { video.title }
|
1217
|
+
let!(:new_title) { old_title.reverse }
|
1218
|
+
before { video.update title: new_title }
|
1219
|
+
it { expect(video.title).to eq(new_title) }
|
1220
|
+
after { video.update title: old_title }
|
1221
|
+
end
|
1222
|
+
end
|
1211
1223
|
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.32.
|
4
|
+
version: 0.32.6
|
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: 2020-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -349,8 +349,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
349
349
|
- !ruby/object:Gem::Version
|
350
350
|
version: '0'
|
351
351
|
requirements: []
|
352
|
-
|
353
|
-
rubygems_version: 2.7.6.2
|
352
|
+
rubygems_version: 3.0.3
|
354
353
|
signing_key:
|
355
354
|
specification_version: 4
|
356
355
|
summary: Yt makes it easy to interact with Youtube V3 API by providing a modular,
|