mini_mediainfo 0.0.3 → 0.0.5
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/.gitignore +2 -1
- data/Rakefile +9 -0
- data/lib/mini_mediainfo/media.rb +0 -13
- data/lib/mini_mediainfo/version.rb +1 -1
- data/lib/mini_mediainfo.rb +1 -1
- data/mini_mediainfo.gemspec +2 -1
- data/spec/media_spec.rb +17 -17
- data/spec/mini_mediainfo_spec.rb +5 -6
- metadata +32 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70b3e1087ebb8b7c717f342f649e65a19f4911bb
|
4
|
+
data.tar.gz: beda93f5ed1ce60d30a0335ef38506aae37506ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cebf85614944c555c0b8e31e8da46ed4d922a10864dddd4d8fe1ccfcf044766d300b97f7dde428bffd1e95f3aa38703e22d7ed9c1d4ab7d2fd3509dde75db2f
|
7
|
+
data.tar.gz: 4466de66e18cf61234d622162bc48290c633bb1f1d47891eb0e7d1350739deb97171196cf397c4c966e6efad90619c53ef67d270094c22e7593448a8d46945f2
|
data/.gitignore
CHANGED
data/Rakefile
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require 'rspec/core/rake_task'
|
3
|
+
require_relative 'lib/mini_mediainfo/media'
|
3
4
|
|
4
5
|
RSpec::Core::RakeTask.new('spec')
|
5
6
|
|
6
7
|
task :default => :spec
|
8
|
+
|
9
|
+
desc "Introspects a video, example: bundle exec rake introspect['http://some-site.com/video.mp4']"
|
10
|
+
task :introspect, [:url] do |t, args|
|
11
|
+
url = args[:url]
|
12
|
+
m = MiniMediainfo::Media.new(url)
|
13
|
+
m.introspect
|
14
|
+
puts m.meta
|
15
|
+
end
|
data/lib/mini_mediainfo/media.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'open3'
|
2
|
-
require "net/http"
|
3
2
|
require "uri"
|
4
3
|
|
5
4
|
module MiniMediainfo
|
@@ -10,18 +9,6 @@ module MiniMediainfo
|
|
10
9
|
attr_reader :uri
|
11
10
|
|
12
11
|
def initialize(uri, options={})
|
13
|
-
unless File.exists?(uri)
|
14
|
-
if uri =~ URI::regexp(["ftp", "http", "https"])
|
15
|
-
url = URI.parse(uri)
|
16
|
-
req = Net::HTTP.new(url.host, url.port)
|
17
|
-
res = req.request_head(url.path)
|
18
|
-
if res.code >= "400"
|
19
|
-
raise "Error: #{uri} is not accessible, status: #{res.code}"
|
20
|
-
end
|
21
|
-
else
|
22
|
-
raise "Error: the file '#{uri}' does not exist"
|
23
|
-
end
|
24
|
-
end
|
25
12
|
@uri = uri
|
26
13
|
@introspection_data = {}
|
27
14
|
end
|
data/lib/mini_mediainfo.rb
CHANGED
data/mini_mediainfo.gemspec
CHANGED
@@ -19,7 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.add_development_dependency "bundler", "~> 1.3"
|
21
21
|
spec.add_development_dependency "rake"
|
22
|
-
spec.add_development_dependency "rspec"
|
22
|
+
spec.add_development_dependency "rspec", "3.5.0"
|
23
23
|
spec.add_development_dependency "thin"
|
24
24
|
spec.add_development_dependency "sinatra"
|
25
|
+
spec.add_development_dependency "byebug"
|
25
26
|
end
|
data/spec/media_spec.rb
CHANGED
@@ -4,14 +4,13 @@ require 'rspec'
|
|
4
4
|
require "mini_mediainfo/media"
|
5
5
|
require "net/http"
|
6
6
|
|
7
|
-
|
8
7
|
describe MiniMediainfo::Media do
|
9
8
|
|
10
9
|
context "when introspecting files" do
|
11
10
|
|
12
11
|
it "should introspect audio file" do
|
13
12
|
media = MiniMediainfo::Media.new("spec/support/small.mp4")
|
14
|
-
media.
|
13
|
+
expect(media).to_not be_nil
|
15
14
|
media.introspect
|
16
15
|
should_have_proper_data(media.meta)
|
17
16
|
end
|
@@ -31,32 +30,33 @@ describe MiniMediainfo::Media do
|
|
31
30
|
|
32
31
|
it "should introspect video url" do
|
33
32
|
res = Net::HTTP.start('localhost', 4567) { |http| http.get('/small.mp4') }
|
34
|
-
res.code.
|
33
|
+
expect(res.code).to eq('200')
|
35
34
|
|
36
35
|
media = MiniMediainfo::Media.new("http://localhost:4567/small.mp4")
|
37
|
-
media.
|
36
|
+
expect(media).to_not be_nil
|
38
37
|
media.introspect
|
39
38
|
should_have_proper_data(media.meta)
|
40
39
|
end
|
41
40
|
end
|
42
41
|
|
43
42
|
def should_have_proper_data(meta_data)
|
44
|
-
meta_data.
|
43
|
+
expect(meta_data).to be_a(Hash)
|
45
44
|
|
46
45
|
['General', 'Audio', 'Video'].each do |k|
|
47
|
-
meta_data.
|
48
|
-
meta_data[k].
|
46
|
+
expect(meta_data).to have_key(k)
|
47
|
+
expect(meta_data[k]).to_not be_empty
|
49
48
|
end
|
50
49
|
# test format for a couple of key properties
|
51
50
|
number_format = /^[\d]+(\.[\d]+){0,1}$/
|
52
|
-
|
53
|
-
meta_data['
|
54
|
-
meta_data['Video']['
|
55
|
-
meta_data['Video']['
|
56
|
-
meta_data['Video']['
|
57
|
-
meta_data['Video']['
|
58
|
-
meta_data['Video']['
|
59
|
-
meta_data['
|
60
|
-
meta_data['Audio']['
|
51
|
+
|
52
|
+
expect(meta_data['General']['Duration']).to match(number_format) #ms
|
53
|
+
expect(meta_data['Video']['Codec ID']).to_not be_nil # avc1
|
54
|
+
expect(meta_data['Video']['Frame rate']).to match(number_format) # (fps)
|
55
|
+
expect(meta_data['Video']['Width']).to match(number_format) # 1280
|
56
|
+
expect(meta_data['Video']['Height']).to match(number_format) # 1280
|
57
|
+
expect(meta_data['Video']['Format profile']).to_not be_nil # Main@L3.2
|
58
|
+
expect(meta_data['Video']['Bit rate']).to match(number_format) # 1280
|
59
|
+
expect(meta_data['Audio']['Bit rate']).to match(number_format) # 1280
|
60
|
+
expect(meta_data['Audio']['Codec']).to_not be_nil # AAC
|
61
61
|
end
|
62
|
-
end
|
62
|
+
end
|
data/spec/mini_mediainfo_spec.rb
CHANGED
@@ -3,18 +3,17 @@ require 'spec_helper'
|
|
3
3
|
describe MiniMediainfo do
|
4
4
|
|
5
5
|
it "should determine if the platform is supported" do
|
6
|
-
subject.
|
7
|
-
subject.platform_supported?.should be_true
|
6
|
+
expect(subject.platform_supported?).to eq(true)
|
8
7
|
end
|
9
8
|
|
10
9
|
it "should get mediainfo version" do
|
11
10
|
version = subject.mediainfo_version
|
12
|
-
version.
|
13
|
-
version.
|
11
|
+
expect(version).to_not be_nil
|
12
|
+
expect(version).to match(/MediaInfoLib - v/)
|
14
13
|
end
|
15
14
|
|
16
15
|
it "should tell which mediainfo binary" do
|
17
|
-
subject.mediainfo_binary.
|
16
|
+
expect(subject.mediainfo_binary).to match /\/mediainfo/
|
18
17
|
end
|
19
18
|
|
20
|
-
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,83 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mini_mediainfo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karl Forsman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - '
|
45
|
+
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 3.5.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - '
|
52
|
+
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 3.5.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: thin
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sinatra
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: byebug
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '0'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- -
|
94
|
+
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
description: A Ruby wrapper for mediainfo CLI.
|
@@ -87,7 +101,7 @@ executables: []
|
|
87
101
|
extensions: []
|
88
102
|
extra_rdoc_files: []
|
89
103
|
files:
|
90
|
-
- .gitignore
|
104
|
+
- ".gitignore"
|
91
105
|
- Gemfile
|
92
106
|
- LICENSE.txt
|
93
107
|
- README.md
|
@@ -117,17 +131,17 @@ require_paths:
|
|
117
131
|
- lib
|
118
132
|
required_ruby_version: !ruby/object:Gem::Requirement
|
119
133
|
requirements:
|
120
|
-
- -
|
134
|
+
- - ">="
|
121
135
|
- !ruby/object:Gem::Version
|
122
136
|
version: '0'
|
123
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
138
|
requirements:
|
125
|
-
- -
|
139
|
+
- - ">="
|
126
140
|
- !ruby/object:Gem::Version
|
127
141
|
version: '0'
|
128
142
|
requirements: []
|
129
143
|
rubyforge_project:
|
130
|
-
rubygems_version: 2.
|
144
|
+
rubygems_version: 2.5.1
|
131
145
|
signing_key:
|
132
146
|
specification_version: 4
|
133
147
|
summary: A minimalistic gem for wrapping mediainfo commands and parsing it's output.
|