apple-tv-converter 0.5.5 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ v0.5.6
2
+ ------
3
+ * Fixed "[libfaac @ 0x7ff7bc0e6e00] Specified channel layout '2.1' is not supported" error
4
+
1
5
  v0.5.5
2
6
  ------
3
7
  * Fixed gem version requirements
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- apple-tv-converter (0.5.5)
4
+ apple-tv-converter (0.5.6)
5
5
  httparty (~> 0)
6
6
  imdb (~> 0.6, >= 0.6.8)
7
7
  language_list (~> 0.0, >= 0.0.3)
@@ -205,6 +205,8 @@ module AppleTvConverter
205
205
  return e
206
206
  rescue => exc
207
207
  puts "Couldn't parse filename, skipping: #{File.basename(file)}"
208
+ puts exc.respond_to? :message ? exc.message : exc
209
+
208
210
  return nil
209
211
  end
210
212
  rescue Errno::ENOENT
@@ -104,7 +104,7 @@ module AppleTvConverter
104
104
  audio_bitrate ||= media.ffmpeg_data.audio_bitrate || 448
105
105
 
106
106
  options[:extra] << " -af volume=2.000000" # Increase the volume when transcoding
107
- options[:extra] << " -ac #{media.ffmpeg_data.audio_channels || media.audio_streams.first.audio_channels} -ar #{media.ffmpeg_data.audio_sample_rate}"
107
+ options[:extra] << " -ac #{get_transcoded_audio_channels(media)} -ar #{media.ffmpeg_data.audio_sample_rate}"
108
108
  options[:extra] << " -ab #{[audio_bitrate, (media.ffmpeg_data.audio_bitrate || 1000000)].min}k"
109
109
  end
110
110
 
@@ -325,5 +325,13 @@ module AppleTvConverter
325
325
 
326
326
  options
327
327
  end
328
+
329
+ def get_transcoded_audio_channels(media)
330
+ audio_channels = media.ffmpeg_data.audio_channels || media.audio_streams.first.audio_channels
331
+ # Fix for "[libfaac @ 0x7ff7bc0e6e00] Specified channel layout '2.1' is not supported" error
332
+ audio_channels = 4 if audio_channels == 3
333
+
334
+ audio_channels
335
+ end
328
336
  end
329
337
  end
@@ -82,7 +82,7 @@ module AppleTvConverter
82
82
  unless media.is_tv_show_episode?
83
83
  metadata['Name'] = media.imdb_movie.title.gsub(/"/, '"')
84
84
  end
85
- metadata['Genre'] = media.imdb_movie.genres.first.gsub(/"/, '"')
85
+ metadata['Genre'] = media.imdb_movie.genres.first.gsub(/"/, '"') if media.imdb_movie.genres.any?
86
86
  metadata['Description'] = media.imdb_movie.plot.gsub(/"/, '"') if media.imdb_movie.plot
87
87
  metadata['Release Date'] = media.imdb_movie.year if media.imdb_movie.year
88
88
  metadata['Director'] = (media.imdb_movie.director.first || '').gsub(/"/, '"') if media.imdb_movie.director.any?
@@ -1,3 +1,3 @@
1
1
  module AppleTvConverter
2
- VERSION = "0.5.5"
2
+ VERSION = "0.5.6"
3
3
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apple-tv-converter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.6
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Pedro Rodrigues
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-02-06 00:00:00.000000000 Z
12
+ date: 2014-03-26 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rspec
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rake
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -37,6 +41,7 @@ dependencies:
37
41
  type: :development
38
42
  prerelease: false
39
43
  version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
40
45
  requirements:
41
46
  - - ~>
42
47
  - !ruby/object:Gem::Version
@@ -47,6 +52,7 @@ dependencies:
47
52
  - !ruby/object:Gem::Dependency
48
53
  name: streamio-ffmpeg
49
54
  requirement: !ruby/object:Gem::Requirement
55
+ none: false
50
56
  requirements:
51
57
  - - ~>
52
58
  - !ruby/object:Gem::Version
@@ -57,6 +63,7 @@ dependencies:
57
63
  type: :runtime
58
64
  prerelease: false
59
65
  version_requirements: !ruby/object:Gem::Requirement
66
+ none: false
60
67
  requirements:
61
68
  - - ~>
62
69
  - !ruby/object:Gem::Version
@@ -67,6 +74,7 @@ dependencies:
67
74
  - !ruby/object:Gem::Dependency
68
75
  name: language_list
69
76
  requirement: !ruby/object:Gem::Requirement
77
+ none: false
70
78
  requirements:
71
79
  - - ~>
72
80
  - !ruby/object:Gem::Version
@@ -77,6 +85,7 @@ dependencies:
77
85
  type: :runtime
78
86
  prerelease: false
79
87
  version_requirements: !ruby/object:Gem::Requirement
88
+ none: false
80
89
  requirements:
81
90
  - - ~>
82
91
  - !ruby/object:Gem::Version
@@ -87,6 +96,7 @@ dependencies:
87
96
  - !ruby/object:Gem::Dependency
88
97
  name: imdb
89
98
  requirement: !ruby/object:Gem::Requirement
99
+ none: false
90
100
  requirements:
91
101
  - - ~>
92
102
  - !ruby/object:Gem::Version
@@ -97,6 +107,7 @@ dependencies:
97
107
  type: :runtime
98
108
  prerelease: false
99
109
  version_requirements: !ruby/object:Gem::Requirement
110
+ none: false
100
111
  requirements:
101
112
  - - ~>
102
113
  - !ruby/object:Gem::Version
@@ -107,6 +118,7 @@ dependencies:
107
118
  - !ruby/object:Gem::Dependency
108
119
  name: httparty
109
120
  requirement: !ruby/object:Gem::Requirement
121
+ none: false
110
122
  requirements:
111
123
  - - ~>
112
124
  - !ruby/object:Gem::Version
@@ -114,6 +126,7 @@ dependencies:
114
126
  type: :runtime
115
127
  prerelease: false
116
128
  version_requirements: !ruby/object:Gem::Requirement
129
+ none: false
117
130
  requirements:
118
131
  - - ~>
119
132
  - !ruby/object:Gem::Version
@@ -121,6 +134,7 @@ dependencies:
121
134
  - !ruby/object:Gem::Dependency
122
135
  name: rubyzip
123
136
  requirement: !ruby/object:Gem::Requirement
137
+ none: false
124
138
  requirements:
125
139
  - - ~>
126
140
  - !ruby/object:Gem::Version
@@ -131,6 +145,7 @@ dependencies:
131
145
  type: :runtime
132
146
  prerelease: false
133
147
  version_requirements: !ruby/object:Gem::Requirement
148
+ none: false
134
149
  requirements:
135
150
  - - ~>
136
151
  - !ruby/object:Gem::Version
@@ -141,6 +156,7 @@ dependencies:
141
156
  - !ruby/object:Gem::Dependency
142
157
  name: libxml-ruby
143
158
  requirement: !ruby/object:Gem::Requirement
159
+ none: false
144
160
  requirements:
145
161
  - - ~>
146
162
  - !ruby/object:Gem::Version
@@ -151,6 +167,7 @@ dependencies:
151
167
  type: :runtime
152
168
  prerelease: false
153
169
  version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
154
171
  requirements:
155
172
  - - ~>
156
173
  - !ruby/object:Gem::Version
@@ -167,19 +184,22 @@ executables:
167
184
  extensions: []
168
185
  extra_rdoc_files: []
169
186
  files:
170
- - CHANGELOG
171
- - Gemfile
172
- - Gemfile.lock
173
- - LICENSE
174
- - README.md
175
- - bin/SublerCLI
176
- - bin/apple-tv-converter
177
- - bin/atc-filesystem-watcher
187
+ - lib/apple_tv_converter/apple_tv_converter.sublime-project
188
+ - lib/apple_tv_converter/apple_tv_converter.sublime-workspace
189
+ - lib/apple_tv_converter/command_line.rb
190
+ - lib/apple_tv_converter/io_patch.rb
191
+ - lib/apple_tv_converter/media.rb
192
+ - lib/apple_tv_converter/media_converter.rb
193
+ - lib/apple_tv_converter/media_converter_adapter.rb
194
+ - lib/apple_tv_converter/media_converter_mac_adapter.rb
195
+ - lib/apple_tv_converter/media_converter_windows_adapter.rb
196
+ - lib/apple_tv_converter/movie_hasher.rb
197
+ - lib/apple_tv_converter/subtitles_fetcher/opensubtitles.rb
198
+ - lib/apple_tv_converter/tv_db_fetcher.rb
199
+ - lib/apple_tv_converter/version.rb
200
+ - lib/apple_tv_converter.rb
178
201
  - gems/streamio-ffmpeg/CHANGELOG
179
202
  - gems/streamio-ffmpeg/Gemfile
180
- - gems/streamio-ffmpeg/LICENSE
181
- - gems/streamio-ffmpeg/README.md
182
- - gems/streamio-ffmpeg/Rakefile
183
203
  - gems/streamio-ffmpeg/lib/ffmpeg/encoding_options.rb
184
204
  - gems/streamio-ffmpeg/lib/ffmpeg/errors.rb
185
205
  - gems/streamio-ffmpeg/lib/ffmpeg/io_monkey.rb
@@ -188,6 +208,9 @@ files:
188
208
  - gems/streamio-ffmpeg/lib/ffmpeg/transcoder.rb
189
209
  - gems/streamio-ffmpeg/lib/ffmpeg/version.rb
190
210
  - gems/streamio-ffmpeg/lib/streamio-ffmpeg.rb
211
+ - gems/streamio-ffmpeg/LICENSE
212
+ - gems/streamio-ffmpeg/Rakefile
213
+ - gems/streamio-ffmpeg/README.md
191
214
  - gems/streamio-ffmpeg/spec/ffmpeg/encoding_options_spec.rb
192
215
  - gems/streamio-ffmpeg/spec/ffmpeg/movie_spec.rb
193
216
  - gems/streamio-ffmpeg/spec/ffmpeg/transcoder_spec.rb
@@ -209,42 +232,37 @@ files:
209
232
  - gems/streamio-ffmpeg/spec/spec_helper.rb
210
233
  - gems/streamio-ffmpeg/spec/streamio-ffmpeg_spec.rb
211
234
  - gems/streamio-ffmpeg/streamio-ffmpeg.gemspec
212
- - lib/apple_tv_converter.rb
213
- - lib/apple_tv_converter/apple_tv_converter.sublime-project
214
- - lib/apple_tv_converter/apple_tv_converter.sublime-workspace
215
- - lib/apple_tv_converter/command_line.rb
216
- - lib/apple_tv_converter/io_patch.rb
217
- - lib/apple_tv_converter/media.rb
218
- - lib/apple_tv_converter/media_converter.rb
219
- - lib/apple_tv_converter/media_converter_adapter.rb
220
- - lib/apple_tv_converter/media_converter_mac_adapter.rb
221
- - lib/apple_tv_converter/media_converter_windows_adapter.rb
222
- - lib/apple_tv_converter/movie_hasher.rb
223
- - lib/apple_tv_converter/subtitles_fetcher/opensubtitles.rb
224
- - lib/apple_tv_converter/tv_db_fetcher.rb
225
- - lib/apple_tv_converter/version.rb
235
+ - bin/apple-tv-converter
236
+ - bin/SublerCLI
237
+ - README.md
238
+ - LICENSE
239
+ - CHANGELOG
240
+ - Gemfile
241
+ - Gemfile.lock
226
242
  homepage: http://github.com/gokuu/apple-tv-converter
227
243
  licenses:
228
244
  - MIT
229
- metadata: {}
230
245
  post_install_message:
231
246
  rdoc_options: []
232
247
  require_paths:
233
248
  - lib
234
249
  required_ruby_version: !ruby/object:Gem::Requirement
250
+ none: false
235
251
  requirements:
236
252
  - - ! '>='
237
253
  - !ruby/object:Gem::Version
238
254
  version: '0'
239
255
  required_rubygems_version: !ruby/object:Gem::Requirement
256
+ none: false
240
257
  requirements:
241
258
  - - ! '>='
242
259
  - !ruby/object:Gem::Version
243
260
  version: '0'
244
261
  requirements: []
245
262
  rubyforge_project:
246
- rubygems_version: 2.2.2
263
+ rubygems_version: 1.8.24
247
264
  signing_key:
248
- specification_version: 4
265
+ specification_version: 3
249
266
  summary: Converts movies to a format playable on Apple TV.
250
267
  test_files: []
268
+ has_rdoc:
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NGEwYjFkNGY5NGVmYTRmZmI2ZjBhM2FjNDgxYzRiMWYyMDI0NzQyMg==
5
- data.tar.gz: !binary |-
6
- MTFjZGI1OGY1ZDdmNmJiODE3YzFkMDRhZTNiYjUzZWU2ZmY1NDQ2Nw==
7
- SHA512:
8
- metadata.gz: !binary |-
9
- ZmZiZGFiMDhhMWU5NjAzNGFkNDkwMjE3ZDY1MjY5MDc3MzQwMTI2NGE3NWU0
10
- MWQ4ZmEzMmM5MjZmNGM4M2IxYTU2MjJlOGQ2NTk5N2YyNThiMDE1YTVkNWNj
11
- YjRlMGU1MGFmMTViMjcxZmJmYzMzYTQ1NGQ5NGFmNDMyOTM2YzE=
12
- data.tar.gz: !binary |-
13
- MzNmMDcwY2I3YjUyM2ZkOWNiYjEzOTBjZWIwZTZmZGQ1MWY0MDI1ZjkwNDU0
14
- OGJiM2MyYjY4M2ZhNTFlMWM3ZGE2Y2M3ZjM3ZThkZDg1ODBlYzFjNDVhNTNh
15
- MzI2MTcyZmM0Nzc5MzEzYTRmNTYwM2E5Mjg2ZTkxZmNhMzFhZjE=
@@ -1,75 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require 'yaml'
4
- require 'fileutils'
5
- require 'shellwords'
6
- # require 'apple_tv_converter'
7
-
8
- def debug(message)
9
- puts "[#{Process.pid.to_s.ljust(6, ' ')} @ #{Time.now.strftime('%Y/%m/%d %H:%I:%S')}] #{message}"
10
- STDOUT.flush
11
- end
12
-
13
- def check_for_file_complete(file)
14
- debug "Check for file complete: #{file}"
15
- same_size_counter = 0
16
- previous_size = 0
17
- while true
18
- new_size = File.size(file)
19
-
20
- debug "size: #{previous_size} -> #{new_size}"
21
-
22
- if previous_size < new_size
23
- same_size_counter = 0
24
- else
25
- same_size_counter += 1
26
- end
27
-
28
- return true if same_size_counter == 3
29
-
30
- previous_size = new_size
31
- sleep 1
32
- end
33
- end
34
-
35
-
36
- debug "Starting"
37
- EXTENSIONS = ["avi", "mov", "mpg", "mpeg", "wmv", "mp4", "mkv", "ogg", "m2ts"]
38
-
39
- plist_file = File.read(File.expand_path(File.join('~', 'Library', 'LaunchAgents', 'org.gokuu.apple-tv-converter.plist')))
40
-
41
- paths = plist_file.match(/WatchPaths.*?(<array>.*?<string>.*?<\/string>.*?<\/array>)/m)[1].gsub(/<\/?.*?>/, "\n").strip.gsub(/\s{2,}/, "\n").split("\n")
42
-
43
- existing_files = File.expand_path(File.join('~', 'Library', 'Application Support', 'apple-tv-converter', 'files.yml'))
44
- FileUtils.mkdir_p File.dirname(existing_files)
45
- files = YAML.load_file(existing_files) if File.exists?(existing_files)
46
- files ||= {}
47
-
48
- paths.each do |path|
49
- if File.directory?(path)
50
- old_existing = files[path] || []
51
- new_existing = Dir[File.join(path, '**', '*')].select { |f| !File.directory?(f) }
52
-
53
- to_process = new_existing.select { |new_file| !old_existing.include?(new_file) && EXTENSIONS.include?(File.extname(new_file).gsub(/^\./, '').downcase) }
54
-
55
- if to_process.any?
56
- command_line = "/usr/bin/apple-tv-converter --ffmpeg /usr/local/bin/ffmpeg --itunes -l eng,por --imdb --os"
57
-
58
- to_process.each do |f|
59
- if check_for_file_complete(f)
60
- command_line << %Q[ "#{f}"]
61
- end
62
- end
63
-
64
- debug command_line
65
-
66
- debug `#{command_line}`
67
- end
68
-
69
- files[path] = new_existing
70
- end
71
- end
72
-
73
- File.open(existing_files, 'w') { |file| file.write files.to_yaml }
74
-
75
- debug "Complete"