youtube_id 0.0.3 → 0.1.0
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 +7 -0
- data/.travis.yml +6 -4
- data/README.md +1 -1
- data/lib/youtube_id.rb +5 -5
- data/lib/youtube_id/version.rb +1 -1
- data/spec/youtube_id_spec.rb +33 -31
- metadata +16 -15
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ed39a7ecd0225864d1e4b877ffe6595b0ea27164
|
4
|
+
data.tar.gz: a2382f0d248d1bbb15f5940cb087f83134e17108
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 51aa373084c3813a7fe012dde583254afcc4f90e42959a9136c12c1f3c760f619ab0d63d9e3fe251b6b097ec3fdb838d87da744e78710bf8647c3d9288f5a508
|
7
|
+
data.tar.gz: 5aaf414153b8774ee8bd718ec7914b3c6506b9c5a3cfc2d27b792b122289dc413697f1ac892e6f6efe5c8a5fcd0f72ccad37df02a02db34bc36ca3626fd52ca7
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -21,7 +21,7 @@ Or install it yourself as:
|
|
21
21
|
## Usage
|
22
22
|
|
23
23
|
```ruby
|
24
|
-
YoutubeID.from("http
|
24
|
+
YoutubeID.from("http://www.youtube.com/watch?v=RCUkmUXMd_k") # => "RCUkmUXMd_k"
|
25
25
|
```
|
26
26
|
|
27
27
|
It supports these url formats:
|
data/lib/youtube_id.rb
CHANGED
@@ -2,11 +2,11 @@ require "youtube_id/version"
|
|
2
2
|
|
3
3
|
module YoutubeID
|
4
4
|
FORMATS = [
|
5
|
-
%r(https?://youtu\.be/(.+)),
|
6
|
-
%r(https?://www\.youtube\.com/watch\?v=(.*?)(&|#|$)),
|
7
|
-
%r(https?://www\.youtube\.com/embed/(.*?)(\?|$)),
|
8
|
-
%r(https?://www\.youtube\.com/v/(.*?)(#|\?|$)),
|
9
|
-
%r(https?://www\.youtube\.com/user/.*?#\w/\w/\w/\w/(.+)\b)
|
5
|
+
%r((?:https?://)?youtu\.be/(.+)),
|
6
|
+
%r((?:https?://)?(?:www\.)?youtube\.com/watch\?v=(.*?)(&|#|$)),
|
7
|
+
%r((?:https?://)?(?:www\.)?youtube\.com/embed/(.*?)(\?|$)),
|
8
|
+
%r((?:https?://)?(?:www\.)?youtube\.com/v/(.*?)(#|\?|$)),
|
9
|
+
%r((?:https?://)?(?:www\.)?youtube\.com/user/.*?#\w/\w/\w/\w/(.+)\b)
|
10
10
|
]
|
11
11
|
|
12
12
|
def self.from(video_url)
|
data/lib/youtube_id/version.rb
CHANGED
data/spec/youtube_id_spec.rb
CHANGED
@@ -4,54 +4,56 @@ describe YoutubeID do
|
|
4
4
|
describe ".from" do
|
5
5
|
subject { described_class.from url }
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
12
|
-
|
13
|
-
context "legacy embed format" "/v/:id?version=3&hl=en_US&rel=0" do
|
14
|
-
let(:url) { "#{protocol}://www.youtube.com/v/RCUkmUXMd_k?version=3&hl=en_US&rel=0" }
|
15
|
-
it { should == "RCUkmUXMd_k" }
|
16
|
-
end
|
17
|
-
|
18
|
-
context "embed format" "/embed/RCUkmUXMd_k?rel=0" do
|
19
|
-
let(:url) { "#{protocol}://www.youtube.com/embed/RCUkmUXMd_k?rel=0" }
|
20
|
-
it { should == "RCUkmUXMd_k" }
|
21
|
-
|
22
|
-
context "without parameters" do
|
23
|
-
let(:url) { "#{protocol}://www.youtube.com/embed/RCUkmUXMd_k" }
|
7
|
+
["", "http://", "https://"].each do |protocol|
|
8
|
+
["", "www."].each do |www|
|
9
|
+
context "direct format" "/v/:id" do
|
10
|
+
let(:url) { "#{protocol}#{www}youtube.com/v/RCUkmUXMd_k" }
|
24
11
|
it { should == "RCUkmUXMd_k" }
|
25
12
|
end
|
26
|
-
end
|
27
13
|
|
28
|
-
|
29
|
-
|
30
|
-
|
14
|
+
context "legacy embed format" "/v/:id?version=3&hl=en_US&rel=0" do
|
15
|
+
let(:url) { "#{protocol}#{www}youtube.com/v/RCUkmUXMd_k?version=3&hl=en_US&rel=0" }
|
16
|
+
it { should == "RCUkmUXMd_k" }
|
17
|
+
end
|
31
18
|
|
32
|
-
context "
|
33
|
-
let(:url) { "#{protocol}
|
19
|
+
context "embed format" "/embed/RCUkmUXMd_k?rel=0" do
|
20
|
+
let(:url) { "#{protocol}#{www}youtube.com/embed/RCUkmUXMd_k?rel=0" }
|
34
21
|
it { should == "RCUkmUXMd_k" }
|
22
|
+
|
23
|
+
context "without parameters" do
|
24
|
+
let(:url) { "#{protocol}#{www}youtube.com/embed/RCUkmUXMd_k" }
|
25
|
+
it { should == "RCUkmUXMd_k" }
|
26
|
+
end
|
35
27
|
end
|
36
28
|
|
37
|
-
context "
|
38
|
-
let(:url) { "#{protocol}
|
29
|
+
context "standard format", "/watch?v=:id" do
|
30
|
+
let(:url) { "#{protocol}#{www}youtube.com/watch?v=RCUkmUXMd_k" }
|
39
31
|
it { should == "RCUkmUXMd_k" }
|
32
|
+
|
33
|
+
context "with additional parameters" do
|
34
|
+
let(:url) { "#{protocol}#{www}youtube.com/watch?v=RCUkmUXMd_k&feature=related" }
|
35
|
+
it { should == "RCUkmUXMd_k" }
|
36
|
+
end
|
37
|
+
|
38
|
+
context "with start time specification" do
|
39
|
+
let(:url) { "#{protocol}#{www}youtube.com/watch?v=RCUkmUXMd_k#t=0m10s" }
|
40
|
+
it { should == "RCUkmUXMd_k" }
|
41
|
+
end
|
40
42
|
end
|
41
|
-
end
|
42
43
|
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
context "user video format", "/user/name#p/a/u/0/:id" do
|
45
|
+
let(:url) { "#{protocol}#{www}youtube.com/user/ForceD3strategy#p/a/u/0/8WVTOUh53QY" }
|
46
|
+
it { should == "8WVTOUh53QY" }
|
47
|
+
end
|
46
48
|
end
|
47
49
|
|
48
50
|
context "short url format", "//youtu.be/RCUkmUXMd_k" do
|
49
|
-
let(:url) { "#{protocol}
|
51
|
+
let(:url) { "#{protocol}youtu.be/RCUkmUXMd_k" }
|
50
52
|
it { should == "RCUkmUXMd_k" }
|
51
53
|
end
|
52
54
|
|
53
55
|
context "short url format with dashes", "//youtu.be/Hu0i--4tz0N" do
|
54
|
-
let(:url) { "#{protocol}
|
56
|
+
let(:url) { "#{protocol}youtu.be/Hu0i--4tz0N" }
|
55
57
|
it { should == "Hu0i--4tz0N" }
|
56
58
|
end
|
57
59
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: youtube_id
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Rodrigo Navarro
|
@@ -11,19 +10,22 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date:
|
13
|
+
date: 2018-02-07 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: rspec
|
18
|
-
requirement:
|
19
|
-
none: false
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
20
18
|
requirements:
|
21
|
-
- -
|
19
|
+
- - ">="
|
22
20
|
- !ruby/object:Gem::Version
|
23
21
|
version: '0'
|
24
22
|
type: :development
|
25
23
|
prerelease: false
|
26
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0'
|
27
29
|
description: Easily extract the video id from youtube videos urls
|
28
30
|
email:
|
29
31
|
- rnavarro1@gmail.com
|
@@ -33,8 +35,8 @@ executables: []
|
|
33
35
|
extensions: []
|
34
36
|
extra_rdoc_files: []
|
35
37
|
files:
|
36
|
-
- .gitignore
|
37
|
-
- .travis.yml
|
38
|
+
- ".gitignore"
|
39
|
+
- ".travis.yml"
|
38
40
|
- Gemfile
|
39
41
|
- LICENSE
|
40
42
|
- README.md
|
@@ -45,26 +47,25 @@ files:
|
|
45
47
|
- youtube_id.gemspec
|
46
48
|
homepage: https://github.com/reu/youtube_id
|
47
49
|
licenses: []
|
50
|
+
metadata: {}
|
48
51
|
post_install_message:
|
49
52
|
rdoc_options: []
|
50
53
|
require_paths:
|
51
54
|
- lib
|
52
55
|
required_ruby_version: !ruby/object:Gem::Requirement
|
53
|
-
none: false
|
54
56
|
requirements:
|
55
|
-
- -
|
57
|
+
- - ">="
|
56
58
|
- !ruby/object:Gem::Version
|
57
59
|
version: '0'
|
58
60
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
61
|
requirements:
|
61
|
-
- -
|
62
|
+
- - ">="
|
62
63
|
- !ruby/object:Gem::Version
|
63
64
|
version: '0'
|
64
65
|
requirements: []
|
65
66
|
rubyforge_project:
|
66
|
-
rubygems_version:
|
67
|
+
rubygems_version: 2.4.5
|
67
68
|
signing_key:
|
68
|
-
specification_version:
|
69
|
+
specification_version: 4
|
69
70
|
summary: Easily extract the video id from youtube videos urls
|
70
71
|
test_files: []
|