yt 0.10.3 → 0.10.4
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 +4 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/yt/collections/videos.rb +6 -1
- data/lib/yt/models/snippet.rb +12 -0
- data/lib/yt/models/video.rb +14 -1
- data/lib/yt/version.rb +1 -1
- data/spec/requests/as_account/account_spec.rb +6 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83e093f9574237e7acfe751a152ebe9f2b700cd5
|
4
|
+
data.tar.gz: f136bf0de7f233e096444e5a7b3c51e5efa37d14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 409c0e3eb775a2a4d06b99a5f76edefb006d7430d8cfa0722cf4774e0a44db2a912c82b44a3f6f7b2a0c58a3df85a713fd725b8b6f41a767cc2390c24c9d47d4
|
7
|
+
data.tar.gz: 4b7ed9f82d43e2f4bcd536c9e1d3bdc0e67a7bfb5e3eadab8b0ecd4bb144c2812c0e6c829482dfad0b48cba298debb4041ad96c6c199f830c6cb2e3ff77b4189
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,10 @@ 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.10.4 - 2014-08-15
|
10
|
+
|
11
|
+
* [BUGFIX] List tags of videos retrieved with channel.videos and account.videos
|
12
|
+
|
9
13
|
## 0.10.3 - 2014-08-12
|
10
14
|
|
11
15
|
* [FEATURE] Add methods to insert and delete ContentID references
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -41,7 +41,7 @@ To install on your system, run
|
|
41
41
|
|
42
42
|
To use inside a bundled Ruby project, add this line to the Gemfile:
|
43
43
|
|
44
|
-
gem 'yt', '~> 0.10.
|
44
|
+
gem 'yt', '~> 0.10.4'
|
45
45
|
|
46
46
|
Since the gem follows [Semantic Versioning](http://semver.org),
|
47
47
|
indicating the full version in your Gemfile (~> *major*.*minor*.*patch*)
|
@@ -13,9 +13,14 @@ module Yt
|
|
13
13
|
|
14
14
|
# @return [Yt::Models::Video] a new video initialized with one of
|
15
15
|
# the items returned by asking YouTube for a list of videos.
|
16
|
+
# According to the documentation, tags are only visible to the video's
|
17
|
+
# uploader, and are not returned when search for all the videos of an
|
18
|
+
# account. Instead, a separate call to Videos#list is required. Setting
|
19
|
+
# +includes_tags+ to +false+ makes sure that `video.tags` will do this.
|
16
20
|
# @see https://developers.google.com/youtube/v3/docs/videos#resource
|
17
21
|
def new_item(data)
|
18
|
-
|
22
|
+
snippet = data.fetch('snippet', {}).merge includes_tags: false
|
23
|
+
Yt::Video.new id: data['id']['videoId'], snippet: snippet, auth: @auth
|
19
24
|
end
|
20
25
|
|
21
26
|
# @return [Hash] the parameters to submit to YouTube to list videos.
|
data/lib/yt/models/snippet.rb
CHANGED
@@ -162,6 +162,18 @@ module Yt
|
|
162
162
|
def video
|
163
163
|
@video ||= Video.new id: video_id, auth: @auth if video_id
|
164
164
|
end
|
165
|
+
|
166
|
+
# Returns whether YouTube API includes tags in this snippet.
|
167
|
+
# YouTube API only returns tags on Videos#list, not on Videos#search.
|
168
|
+
# This method is used to guarantee that, when a video was instantiated
|
169
|
+
# by calling account.videos or channel.videos, then video.tags is not
|
170
|
+
# simply returned as empty, but an additional call to Videos#list is
|
171
|
+
# made to retrieve the correct tags.
|
172
|
+
# @see https://developers.google.com/youtube/v3/docs/videos
|
173
|
+
# @return [Boolean] whether YouTube API includes tags in this snippet.
|
174
|
+
def includes_tags
|
175
|
+
@includes_tags ||= @data.fetch :includes_tags, true
|
176
|
+
end
|
165
177
|
end
|
166
178
|
end
|
167
179
|
end
|
data/lib/yt/models/video.rb
CHANGED
@@ -5,7 +5,7 @@ module Yt
|
|
5
5
|
# Provides methods to interact with YouTube videos.
|
6
6
|
# @see https://developers.google.com/youtube/v3/docs/videos
|
7
7
|
class Video < Resource
|
8
|
-
delegate :
|
8
|
+
delegate :channel_id, :channel_title, :category_id,
|
9
9
|
:live_broadcast_content, to: :snippet
|
10
10
|
|
11
11
|
delegate :deleted?, :failed?, :processed?, :rejected?, :uploaded?,
|
@@ -67,6 +67,19 @@ module Yt
|
|
67
67
|
delegate :view_count, :like_count, :dislike_count, :favorite_count,
|
68
68
|
:comment_count, to: :statistics_set
|
69
69
|
|
70
|
+
# Returns the list of keyword tags associated with the video.
|
71
|
+
# Since YouTube API only returns tags on Videos#list, the memoized
|
72
|
+
# @snippet is erased if the video was instantiated through Video#search
|
73
|
+
# (e.g., by calling account.videos or channel.videos), so that the full
|
74
|
+
# snippet (with tags) is loaded, rather than the partial one.
|
75
|
+
# @see https://developers.google.com/youtube/v3/docs/videos
|
76
|
+
# @return [Array<Yt::Models::Tag>] the list of keyword tags associated
|
77
|
+
# with the video.
|
78
|
+
def tags
|
79
|
+
@snippet = nil unless snippet.includes_tags
|
80
|
+
snippet.tags
|
81
|
+
end
|
82
|
+
|
70
83
|
# Deletes the video.
|
71
84
|
#
|
72
85
|
# This method requires {Resource#auth auth} to return an authenticated
|
data/lib/yt/version.rb
CHANGED
@@ -11,8 +11,12 @@ describe Yt::Account, :device_app do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
describe '.videos' do
|
14
|
-
|
15
|
-
|
14
|
+
let(:video) { $account.videos.where(order: 'viewCount').first }
|
15
|
+
|
16
|
+
specify 'returns the account’s videos with its tags' do
|
17
|
+
expect(video).to be_a Yt::Video
|
18
|
+
expect(video.tags).not_to be_empty
|
19
|
+
end
|
16
20
|
|
17
21
|
describe '.where(q: query_string)' do
|
18
22
|
let(:count) { $account.videos.where(q: query).count }
|
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.10.
|
4
|
+
version: 0.10.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claudio Baccigalupo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|