viddl 0.0.2
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/LICENSE +13 -0
- data/README.md +100 -0
- data/bin/viddl +80 -0
- data/lib/viddl.rb +19 -0
- data/lib/viddl/system.rb +38 -0
- data/lib/viddl/video.rb +23 -0
- data/lib/viddl/video/clip.rb +129 -0
- data/lib/viddl/video/clip/audio.rb +43 -0
- data/lib/viddl/video/clip/crop.rb +59 -0
- data/lib/viddl/video/clip/cut.rb +83 -0
- data/lib/viddl/video/clip/resize.rb +66 -0
- data/lib/viddl/video/download.rb +49 -0
- data/lib/viddl/video/instance.rb +62 -0
- data/spec/helper.rb +8 -0
- data/spec/system_spec.rb +77 -0
- data/spec/video/clip/audio_spec.rb +81 -0
- data/spec/video/clip/crop_spec.rb +113 -0
- data/spec/video/clip/cut_spec.rb +246 -0
- data/spec/video/clip/resize_spec.rb +136 -0
- data/spec/video/clip_spec.rb +443 -0
- data/spec/video/download_spec.rb +42 -0
- data/spec/video/instance_spec.rb +121 -0
- data/spec/video_spec.rb +24 -0
- metadata +109 -0
@@ -0,0 +1,121 @@
|
|
1
|
+
require "helper"
|
2
|
+
|
3
|
+
describe Viddl::Video::Instance do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@video_id = "6g4dkBF5anU"
|
7
|
+
@source_url = "https://youtube.com/watch?v=#{@video_id}"
|
8
|
+
@video = Viddl::Video::Instance.new(@source_url)
|
9
|
+
end
|
10
|
+
|
11
|
+
context "#source_filenames" do
|
12
|
+
|
13
|
+
context "with associated download" do
|
14
|
+
|
15
|
+
it "pulls filenames from directory" do
|
16
|
+
@download = Viddl::Video::Download.new(@video)
|
17
|
+
expect(Dir).to(receive(:[]))
|
18
|
+
@result = @video.source_filenames
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
context "with no associated download" do
|
24
|
+
|
25
|
+
it "raises" do
|
26
|
+
expect {
|
27
|
+
@video.source_filenames
|
28
|
+
}.to(raise_error(RuntimeError))
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
context "#create_clip" do
|
36
|
+
|
37
|
+
before(:each) do
|
38
|
+
@download = Viddl::Video::Download.new(@video)
|
39
|
+
expect(@video).to(receive(:source_filenames).and_return(["/tmp/#{@video_id}.mkv"]))
|
40
|
+
end
|
41
|
+
|
42
|
+
context "with no options" do
|
43
|
+
|
44
|
+
it "execs command line" do
|
45
|
+
@options = {}
|
46
|
+
expect(Kernel).to(receive(:system))
|
47
|
+
@result = @video.create_clip(@options)
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
context "with duration" do
|
53
|
+
|
54
|
+
it "execs command line" do
|
55
|
+
@options = {
|
56
|
+
duration: 12
|
57
|
+
}
|
58
|
+
expect(Kernel).to(receive(:system))
|
59
|
+
@result = @video.create_clip(@options)
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
context "with start time and duration" do
|
65
|
+
|
66
|
+
it "execs command line" do
|
67
|
+
@options = {
|
68
|
+
start: 10,
|
69
|
+
duration: 15
|
70
|
+
}
|
71
|
+
expect(Kernel).to(receive(:system))
|
72
|
+
@result = @video.create_clip(@options)
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
context "with start and end time" do
|
78
|
+
|
79
|
+
it "execs command line" do
|
80
|
+
@options = {
|
81
|
+
start: 8,
|
82
|
+
end: 15
|
83
|
+
}
|
84
|
+
expect(Kernel).to(receive(:system))
|
85
|
+
@result = @video.create_clip(@options)
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
context "with start, end time and duration" do
|
91
|
+
|
92
|
+
it "raises" do
|
93
|
+
@options = {
|
94
|
+
duration: 5,
|
95
|
+
end: 15,
|
96
|
+
start: 10
|
97
|
+
}
|
98
|
+
expect {
|
99
|
+
@video.create_clip(@options)
|
100
|
+
}.to(raise_error(RuntimeError))
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
context "#process_download" do
|
108
|
+
|
109
|
+
context "with no options" do
|
110
|
+
|
111
|
+
it "execs command line" do
|
112
|
+
@options = {}
|
113
|
+
expect(Kernel).to(receive(:system).and_return(true))
|
114
|
+
@result = @video.process_download(@options)
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
data/spec/video_spec.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require "helper"
|
2
|
+
|
3
|
+
describe Viddl::Video do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@video_id = "6g4dkBF5anU"
|
7
|
+
@source_url = "https://youtube.com/watch?v=#{@video_id}"
|
8
|
+
end
|
9
|
+
|
10
|
+
context ".process" do
|
11
|
+
|
12
|
+
context "with no options" do
|
13
|
+
|
14
|
+
it "execs command line" do
|
15
|
+
@options = {}
|
16
|
+
expect(Kernel).to(receive(:system).and_return(true))
|
17
|
+
@result = Viddl::Video.download(@source_url, @options)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: viddl
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ari Russo
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-05-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '10.4'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 10.4.2
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '10.4'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 10.4.2
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rspec
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.5'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 3.5.0
|
43
|
+
type: :development
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '3.5'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 3.5.0
|
53
|
+
description: Use Viddl to quickly download, cut, crop and resize video clips using
|
54
|
+
youtube-dl and ffmpeg
|
55
|
+
email:
|
56
|
+
- ari.russo@gmail.com
|
57
|
+
executables:
|
58
|
+
- viddl
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- LICENSE
|
63
|
+
- README.md
|
64
|
+
- bin/viddl
|
65
|
+
- lib/viddl.rb
|
66
|
+
- lib/viddl/system.rb
|
67
|
+
- lib/viddl/video.rb
|
68
|
+
- lib/viddl/video/clip.rb
|
69
|
+
- lib/viddl/video/clip/audio.rb
|
70
|
+
- lib/viddl/video/clip/crop.rb
|
71
|
+
- lib/viddl/video/clip/cut.rb
|
72
|
+
- lib/viddl/video/clip/resize.rb
|
73
|
+
- lib/viddl/video/download.rb
|
74
|
+
- lib/viddl/video/instance.rb
|
75
|
+
- spec/helper.rb
|
76
|
+
- spec/system_spec.rb
|
77
|
+
- spec/video/clip/audio_spec.rb
|
78
|
+
- spec/video/clip/crop_spec.rb
|
79
|
+
- spec/video/clip/cut_spec.rb
|
80
|
+
- spec/video/clip/resize_spec.rb
|
81
|
+
- spec/video/clip_spec.rb
|
82
|
+
- spec/video/download_spec.rb
|
83
|
+
- spec/video/instance_spec.rb
|
84
|
+
- spec/video_spec.rb
|
85
|
+
homepage: http://github.com/arirusso/viddl
|
86
|
+
licenses:
|
87
|
+
- Apache-2.0
|
88
|
+
metadata: {}
|
89
|
+
post_install_message:
|
90
|
+
rdoc_options: []
|
91
|
+
require_paths:
|
92
|
+
- lib
|
93
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 1.3.6
|
103
|
+
requirements: []
|
104
|
+
rubyforge_project: viddl
|
105
|
+
rubygems_version: 2.4.6
|
106
|
+
signing_key:
|
107
|
+
specification_version: 4
|
108
|
+
summary: Quickly download, cut, crop and resize video clips
|
109
|
+
test_files: []
|