Class: Yt::Models::Claim

Inherits:
Base
  • Object
show all
Defined in:
lib/yt/models/claim.rb

Overview

Provides methods to interact with YouTube ContentID claims.

Constant Summary collapse

STATUSES =

Status

%q(active appealed disputed inactive pending potential
takedown unknown)
CONTENT_TYPES =

Content Type

%q(audio video audiovisual)

Instance Method Summary collapse

Methods included from Associations::HasReports

#has_report

Methods included from Associations::HasViewerPercentages

#has_viewer_percentages

Methods included from Associations::HasOne

#has_one

Methods included from Associations::HasMany

#has_many

Methods included from Associations::HasAuthentication

#has_authentication

Constructor Details

#initialize(options = {}) ⇒ Claim

Returns a new instance of Claim.



8
9
10
11
12
# File 'lib/yt/models/claim.rb', line 8

def initialize(options = {})
  @data = options[:data]
  @id = options[:id]
  @auth = options[:auth]
end

Instance Method Details

#active?Boolean

Returns whether the claim is active.

Returns:

  • (Boolean)

    whether the claim is active.



58
59
60
# File 'lib/yt/models/claim.rb', line 58

def active?
  status == 'active'
end

#appealed?Boolean

Returns whether the claim is appealed.

Returns:

  • (Boolean)

    whether the claim is appealed.



63
64
65
# File 'lib/yt/models/claim.rb', line 63

def appealed?
  status == 'appealed'
end

#asset_idString

Returns the unique YouTube asset ID that identifies the asset associated with the claim.

Returns:

  • (String)

    the unique YouTube asset ID that identifies the asset associated with the claim.



33
34
35
# File 'lib/yt/models/claim.rb', line 33

def asset_id
  @asset_id ||= @data["assetId"]
end

#audio?Boolean

Returns whether the covers the audio of the content.

Returns:

  • (Boolean)

    whether the covers the audio of the content.



109
110
111
# File 'lib/yt/models/claim.rb', line 109

def audio?
  content_type == 'audio'
end

#audiovisual?Boolean

Returns whether the covers the audiovisual of the content.

Returns:

  • (Boolean)

    whether the covers the audiovisual of the content.



119
120
121
# File 'lib/yt/models/claim.rb', line 119

def audiovisual?
  content_type == 'audiovisual'
end

#block_outside_ownership?Boolean

Return whether the video should be blocked where not explicitly owned.

Returns:

  • (Boolean)

    whether the claimed video should be blocked anywhere it is not explicitly owned. For example, if you upload a video for an asset that you own in the United States and Canada, and you claim the video with a usage policy to monetize the video everywhere. Since the policy is only applied in countries where you own the asset, YouTube will actually monetize the video in the United States and Canada. By default, the video will still be viewable in other countries even though it will not be monetized in those countries. However, if you set this property to true, then the video will be monetized in the United States and Canada and blocked in all other countries.



144
145
146
# File 'lib/yt/models/claim.rb', line 144

def block_outside_ownership?
  @block_outside_ownership ||= @data["blockOutsideOwnership"]
end

#content_typeString

Returns whether the claim covers the audio, video, or audiovisual portion of the claimed content. Valid values are: audio, audiovisual, video.

Returns:

  • (String)

    whether the claim covers the audio, video, or audiovisual portion of the claimed content. Valid values are: audio, audiovisual, video.



104
105
106
# File 'lib/yt/models/claim.rb', line 104

def content_type
  @content_type ||= @data["contentType"]
end

#created_atTime

Returns the date and time that the claim was created.

Returns:

  • (Time)

    the date and time that the claim was created.



124
125
126
# File 'lib/yt/models/claim.rb', line 124

def created_at
  @created_at ||= Time.parse @data["timeCreated"]
end

#deleteBoolean

Note:

YouTube API does not provide a delete method for the Asset resource, but only an update method. Updating the status of a Asset to “inactive” can be considered a soft-deletion.

Soft-deletes the claim.

Returns:

  • (Boolean)

    whether the claim is inactive.



19
20
21
22
23
# File 'lib/yt/models/claim.rb', line 19

def delete
  body = {status: :inactive}
  do_patch(body: body) {|data| @data = data}
  inactive?
end

#disputed?Boolean

Returns whether the claim is disputed.

Returns:

  • (Boolean)

    whether the claim is disputed.



68
69
70
# File 'lib/yt/models/claim.rb', line 68

def disputed?
  status == 'disputed'
end

#has_unknown_status?Boolean

Returns whether the claim status is unknown.

Returns:

  • (Boolean)

    whether the claim status is unknown.



93
94
95
# File 'lib/yt/models/claim.rb', line 93

def has_unknown_status?
  status == 'unknown'
end

#idString

Returns the ID that YouTube assigns and uses to uniquely identify the claim.

Returns:

  • (String)

    the ID that YouTube assigns and uses to uniquely identify the claim.



27
28
29
# File 'lib/yt/models/claim.rb', line 27

def id
  @id ||= @data['id']
end

#inactive?Boolean

Returns whether the claim is inactive.

Returns:

  • (Boolean)

    whether the claim is inactive.



73
74
75
# File 'lib/yt/models/claim.rb', line 73

def inactive?
  status == 'inactive'
end

#match_reference_idString

Returns The unique ID that YouTube uses to identify the reference that generated the match.

Returns:

  • (String)

    The unique ID that YouTube uses to identify the reference that generated the match.



150
151
152
# File 'lib/yt/models/claim.rb', line 150

def match_reference_id
  @match_reference_id ||= @data.fetch('matchInfo', {})['referenceId']
end

#patch_paramsObject



155
156
157
158
159
160
161
# File 'lib/yt/models/claim.rb', line 155

def patch_params
  super.tap do |params|
    params[:expected_response] = Net::HTTPOK
    params[:path] = "/youtube/partner/v1/claims/#{id}"
    params[:params] = {on_behalf_of_content_owner: @auth.owner_name}
  end
end

#pending?Boolean

Returns whether the claim is pending.

Returns:

  • (Boolean)

    whether the claim is pending.



78
79
80
# File 'lib/yt/models/claim.rb', line 78

def pending?
  status == 'pending'
end

#potential?Boolean

Returns whether the claim is potential.

Returns:

  • (Boolean)

    whether the claim is potential.



83
84
85
# File 'lib/yt/models/claim.rb', line 83

def potential?
  status == 'potential'
end

#statusString

Note:

When updating a claim, you can update its status from active to inactive to effectively release the claim, but the API does not support other updates to a claim’s status.

Returns the claim’s status. Valid values are: active, appealed, disputed, inactive, pending, potential, takedown, unknown.

Returns:

  • (String)

    the claim’s status. Valid values are: active, appealed, disputed, inactive, pending, potential, takedown, unknown.



53
54
55
# File 'lib/yt/models/claim.rb', line 53

def status
  @status ||= @data["status"]
end

#takedown?Boolean

Returns whether the claim is takedown.

Returns:

  • (Boolean)

    whether the claim is takedown.



88
89
90
# File 'lib/yt/models/claim.rb', line 88

def takedown?
  status == 'takedown'
end

#third_party?Boolean

Returns whether a third party created the claim.

Returns:

  • (Boolean)

    whether a third party created the claim.



129
130
131
# File 'lib/yt/models/claim.rb', line 129

def third_party?
  @third_party_claim ||= @data['thirdPartyClaim'] == true
end

#video?Boolean

Returns whether the covers the video of the content.

Returns:

  • (Boolean)

    whether the covers the video of the content.



114
115
116
# File 'lib/yt/models/claim.rb', line 114

def video?
  content_type == 'video'
end

#video_idString

Returns the unique YouTube video ID that identifies the video associated with the claim.

Returns:

  • (String)

    the unique YouTube video ID that identifies the video associated with the claim.



39
40
41
# File 'lib/yt/models/claim.rb', line 39

def video_id
  @video_id ||= @data["videoId"]
end