yt 0.13.7 → 0.13.8
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 +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile +1 -1
- data/lib/yt/actions/list.rb +0 -1
- data/lib/yt/collections/assets.rb +32 -0
- data/lib/yt/collections/claims.rb +2 -2
- data/lib/yt/collections/videos.rb +1 -1
- data/lib/yt/models/asset.rb +16 -1
- data/lib/yt/models/asset_metadata.rb +38 -0
- data/lib/yt/models/asset_snippet.rb +45 -0
- data/lib/yt/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c180d75d3544370dcf5ad0bf29cd7da6a22b62b3
|
4
|
+
data.tar.gz: f2d6f98305c7f759e63f9350d8b9d15b28326b1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 733901314de6696b5c92d2e6040d50823fc83e78b7bea221df6c3c9616e4fa640da693dcb1900afb260d3a903a6e46e2763ea4f6d597b8b69faf928ad38b5d87
|
7
|
+
data.tar.gz: 3b30960bbed06617f1632f41b148946bdc37fad836b5b6a48913a0de7587209e46ba17e1640898facc5f082902b0685a43ccb227e89bb8bcdbdffd33c6f52ff8
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,12 @@ For more information about changelogs, check
|
|
6
6
|
[Keep a Changelog](http://keepachangelog.com) and
|
7
7
|
[Vandamme](http://tech-angels.github.io/vandamme).
|
8
8
|
|
9
|
+
## 0.13.8 - 2015-01-15
|
10
|
+
|
11
|
+
* [FEATURE] AssetSearch resources available.
|
12
|
+
* [FEATURE] Access asset metadata (`effective` and `mine`) via the asset object.
|
13
|
+
* [ENHANCEMENT] Support `isManualClaim` parameter in claims#insert.
|
14
|
+
|
9
15
|
## 0.13.7 - 2014-10-27
|
10
16
|
|
11
17
|
* [FEATURE] New video reports: monetized playbacks.
|
data/Gemfile
CHANGED
data/lib/yt/actions/list.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'yt/collections/base'
|
2
2
|
require 'yt/models/asset'
|
3
|
+
require 'yt/models/asset_snippet'
|
3
4
|
|
4
5
|
module Yt
|
5
6
|
module Collections
|
@@ -16,6 +17,37 @@ module Yt
|
|
16
17
|
|
17
18
|
private
|
18
19
|
|
20
|
+
def new_item(data)
|
21
|
+
klass = (data["kind"] == "youtubePartner#assetSnippet") ? Yt::AssetSnippet : Yt::Asset
|
22
|
+
klass.new attributes_for_new_item(data)
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [Hash] the parameters to submit to YouTube to list assets
|
26
|
+
# owned by the content owner.
|
27
|
+
# @see https://developers.google.com/youtube/partner/docs/v1/assets/list
|
28
|
+
def list_params
|
29
|
+
super.tap do |params|
|
30
|
+
params[:path] = assets_path
|
31
|
+
params[:params] = assets_params
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def assets_params
|
36
|
+
apply_where_params! on_behalf_of_content_owner: @auth.owner_name
|
37
|
+
end
|
38
|
+
|
39
|
+
# @private
|
40
|
+
# @todo: This is one of three places outside of base.rb where @where_params
|
41
|
+
# is accessed; it should be replaced with a filter on params instead.
|
42
|
+
def assets_path
|
43
|
+
@where_params ||= {}
|
44
|
+
if @where_params.empty? || @where_params.key?(:id)
|
45
|
+
'/youtube/partner/v1/assets'
|
46
|
+
else
|
47
|
+
'/youtube/partner/v1/assetSearch'
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
19
51
|
# @return [Hash] the parameters to submit to YouTube to add a asset.
|
20
52
|
# @see https://developers.google.com/youtube/partner/docs/v1/assets/insert
|
21
53
|
def insert_params
|
@@ -11,7 +11,7 @@ module Yt
|
|
11
11
|
underscore_keys! attributes
|
12
12
|
body = attributes.slice :asset_id, :video_id, :content_type, :policy
|
13
13
|
body[:policy] = {id: attributes[:policy_id]} if attributes[:policy_id]
|
14
|
-
params = {on_behalf_of_content_owner: @auth.owner_name}
|
14
|
+
params = attributes.slice(:is_manual_claim).merge({on_behalf_of_content_owner: @auth.owner_name})
|
15
15
|
do_insert(params: params, body: body)
|
16
16
|
end
|
17
17
|
|
@@ -41,7 +41,7 @@ module Yt
|
|
41
41
|
end
|
42
42
|
|
43
43
|
# @private
|
44
|
-
# @todo: This is one of
|
44
|
+
# @todo: This is one of three places outside of base.rb where @where_params
|
45
45
|
# is accessed; it should be replaced with a filter on params instead.
|
46
46
|
def claims_path
|
47
47
|
@where_params ||= {}
|
@@ -71,7 +71,7 @@ module Yt
|
|
71
71
|
# /videos should be used when the query specifies video IDs or a chart,
|
72
72
|
# /search otherwise.
|
73
73
|
# @return [Boolean] whether to use the /videos endpoint.
|
74
|
-
# @todo: This is one of
|
74
|
+
# @todo: This is one of three places outside of base.rb where @where_params
|
75
75
|
# is accessed; it should be replaced with a filter on params instead.
|
76
76
|
def use_list_endpoint?
|
77
77
|
@where_params ||= {}
|
data/lib/yt/models/asset.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'yt/models/base'
|
2
|
+
require 'yt/models/asset_metadata'
|
2
3
|
|
3
4
|
module Yt
|
4
5
|
module Models
|
@@ -8,7 +9,7 @@ module Yt
|
|
8
9
|
attr_reader :auth
|
9
10
|
|
10
11
|
def initialize(options = {})
|
11
|
-
@data = options
|
12
|
+
@data = options.fetch(:data, {})
|
12
13
|
@id = options[:id]
|
13
14
|
@auth = options[:auth]
|
14
15
|
end
|
@@ -25,6 +26,14 @@ module Yt
|
|
25
26
|
delegate :general_owners, :performance_owners, :synchronization_owners,
|
26
27
|
:mechanical_owners, to: :ownership
|
27
28
|
|
29
|
+
def metadata_mine
|
30
|
+
@metadata_mine ||= Yt::Models::AssetMetadata.new data: @data.fetch('metadataMine', {})
|
31
|
+
end
|
32
|
+
|
33
|
+
def metadata_effective
|
34
|
+
@metadata_effective ||= Yt::Models::AssetMetadata.new data: @data.fetch('metadataEffective', {})
|
35
|
+
end
|
36
|
+
|
28
37
|
# Soft-deletes the asset.
|
29
38
|
# @note YouTube API does not provide a +delete+ method for the Asset
|
30
39
|
# resource, but only an +update+ method. Updating the +status+ of a
|
@@ -54,6 +63,12 @@ module Yt
|
|
54
63
|
# video_game, and web.
|
55
64
|
has_attribute :type
|
56
65
|
|
66
|
+
# @return [Array<Yt::Models::Tag>] the list of asset labels associated
|
67
|
+
# with the asset. You can apply a label to multiple assets to group
|
68
|
+
# them. You can use the labels as search filters to perform bulk updates,
|
69
|
+
# to download reports, or to filter YouTube Analytics.
|
70
|
+
has_attribute :label
|
71
|
+
|
57
72
|
# Status
|
58
73
|
|
59
74
|
STATUSES = %q(active inactive pending)
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'yt/models/base'
|
2
|
+
|
3
|
+
module Yt
|
4
|
+
module Models
|
5
|
+
# The AssetMetadata object specifies the metadata for an asset.
|
6
|
+
# @see https://developers.google.com/youtube/partner/docs/v1/assets#metadataMine
|
7
|
+
class AssetMetadata < Base
|
8
|
+
def initialize(options = {})
|
9
|
+
@data = options[:data]
|
10
|
+
end
|
11
|
+
|
12
|
+
# @return [String] A unique value that you, the metadata provider,
|
13
|
+
# use to identify an asset. The value could be a unique ID that
|
14
|
+
# you created for the asset or a standard identifier, such as an
|
15
|
+
# ISRC.
|
16
|
+
def custom_id
|
17
|
+
@data['customId']
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [String] The asset's title or name.
|
21
|
+
def title
|
22
|
+
@data['title']
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [String] A description of the asset. The description may be
|
26
|
+
# displayed on YouTube or in CMS.
|
27
|
+
def notes
|
28
|
+
@data['notes']
|
29
|
+
end
|
30
|
+
|
31
|
+
# @return [String] the ID that YouTube assigns and uses to uniquely
|
32
|
+
# identify the asset.
|
33
|
+
def description
|
34
|
+
@data['description']
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'yt/models/base'
|
2
|
+
|
3
|
+
module Yt
|
4
|
+
module Models
|
5
|
+
# Provides methods to interact with YouTube ContentID assetSnippets.
|
6
|
+
# @see https://developers.google.com/youtube/partner/docs/v1/assetSearch
|
7
|
+
class AssetSnippet < Base
|
8
|
+
attr_reader :auth
|
9
|
+
|
10
|
+
def initialize(options = {})
|
11
|
+
@data = options.fetch(:data, {})
|
12
|
+
@auth = options[:auth]
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [String] the ID that YouTube assigns and uses to uniquely
|
16
|
+
# identify the asset.
|
17
|
+
has_attribute :id
|
18
|
+
|
19
|
+
# @return [String] the asset’s type. This value determines the metadata
|
20
|
+
# fields that you can set for the asset. In addition, certain API
|
21
|
+
# functions may only be supported for specific types of assets. For
|
22
|
+
# example, composition assets may have more complex ownership data than
|
23
|
+
# other types of assets.
|
24
|
+
# Valid values for this property are: art_track_video, composition,
|
25
|
+
# episode, general, movie, music_video, season, show, sound_recording,
|
26
|
+
# video_game, and web.
|
27
|
+
has_attribute :type
|
28
|
+
|
29
|
+
# @return [String] the title of this asset.
|
30
|
+
has_attribute :title
|
31
|
+
|
32
|
+
# @return [String] the Custom ID assigned by the content owner to
|
33
|
+
# this asset.
|
34
|
+
has_attribute :custom_id
|
35
|
+
|
36
|
+
# @return [String] the ISRC (International Standard Recording Code)
|
37
|
+
# for this asset.
|
38
|
+
has_attribute :isrc
|
39
|
+
|
40
|
+
# @return [String] the ISWC (International Standard Musical Work Code)
|
41
|
+
# for this asset.
|
42
|
+
has_attribute :iswc
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/yt/version.rb
CHANGED
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.13.
|
4
|
+
version: 0.13.8
|
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: 2015-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -173,6 +173,8 @@ files:
|
|
173
173
|
- lib/yt/models/advertising_options_set.rb
|
174
174
|
- lib/yt/models/annotation.rb
|
175
175
|
- lib/yt/models/asset.rb
|
176
|
+
- lib/yt/models/asset_metadata.rb
|
177
|
+
- lib/yt/models/asset_snippet.rb
|
176
178
|
- lib/yt/models/authentication.rb
|
177
179
|
- lib/yt/models/base.rb
|
178
180
|
- lib/yt/models/channel.rb
|