apple-tv-converter 0.5.2 → 0.5.3

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.
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ v0.5.3
2
+ ------
3
+ * Some transcoding fixes
4
+ * Enable defining a padding length for the episode number via the data file (for example, for shows with more than 100 episodes per season)
5
+ * For season 1 episodes, fetch TheTVDB data first from the absolute episode number (as most anime shows don’t have the concept of seasons), and only after from the 'correct' season and episode number
6
+
1
7
  v0.5.2
2
8
  ------
3
9
  * Set sort metadata fields for TV Show episodes
data/README.md CHANGED
@@ -27,6 +27,11 @@ Usage: apple-tv-converter [options] [file]
27
27
  --no-interactive Perform all operations without user intervention, using sensible defaults
28
28
  --no-cleanup Don't cleanup the source files after processing
29
29
 
30
+ Advanced options:
31
+ --use-absolute-numbering Use absolute numbering for TV Show episodes (specially useful for cartoons)
32
+ --episode-number-padding NUMBER
33
+ Set the episode number padding length (ie, 3 for 001, 002, etc.)
34
+
30
35
  Other options:
31
36
  -f, --ffmpeg LOCATION Set path to ffmpeg binary
32
37
 
@@ -3,6 +3,34 @@
3
3
  {
4
4
  "selected_items":
5
5
  [
6
+ [
7
+ "app",
8
+ "apply_options_to_media"
9
+ ],
10
+ [
11
+ "epi",
12
+ "episode_number_padding"
13
+ ],
14
+ [
15
+ "atr",
16
+ "attr_reader"
17
+ ],
18
+ [
19
+ "epis",
20
+ "episode_number_padding"
21
+ ],
22
+ [
23
+ "ple",
24
+ "plex_format_episode_filename"
25
+ ],
26
+ [
27
+ "h",
28
+ "h264"
29
+ ],
30
+ [
31
+ "vide",
32
+ "video_stream"
33
+ ],
6
34
  [
7
35
  "con",
8
36
  "conversion_options"
@@ -79,14 +107,6 @@
79
107
  "tvd",
80
108
  "tvdb_episode_id"
81
109
  ],
82
- [
83
- "epis",
84
- "episode_data"
85
- ],
86
- [
87
- "epi",
88
- "episode"
89
- ],
90
110
  [
91
111
  "lao",
92
112
  "load_data_file"
@@ -371,10 +391,6 @@
371
391
  "back",
372
392
  "backup_filename"
373
393
  ],
374
- [
375
- "atr",
376
- "attr_accessor"
377
- ],
378
394
  [
379
395
  "im",
380
396
  "check_imdb"
@@ -498,22 +514,6 @@
498
514
  [
499
515
  "arg",
500
516
  "argument"
501
- ],
502
- [
503
- "argume",
504
- "arguments"
505
- ],
506
- [
507
- "new",
508
- "new_report_file_name"
509
- ],
510
- [
511
- "pdf",
512
- "pdf_file_name"
513
- ],
514
- [
515
- "repor",
516
- "report_file_name"
517
517
  ]
518
518
  ]
519
519
  },
@@ -528,18 +528,74 @@
528
528
  }
529
529
  },
530
530
  {
531
- "file": "/Users/pedro/development/personal/apple-tv-converter/gems/streamio-ffmpeg/lib/streamio-ffmpeg.rb",
531
+ "file": "command_line.rb",
532
532
  "settings":
533
533
  {
534
- "buffer_size": 1186,
534
+ "buffer_size": 7963,
535
535
  "line_ending": "Unix"
536
536
  }
537
537
  },
538
538
  {
539
- "file": "command_line.rb",
539
+ "file": "media_converter_mac_adapter.rb",
540
+ "settings":
541
+ {
542
+ "buffer_size": 7597,
543
+ "line_ending": "Unix"
544
+ }
545
+ },
546
+ {
547
+ "file": "media.rb",
548
+ "settings":
549
+ {
550
+ "buffer_size": 8323,
551
+ "line_ending": "Windows"
552
+ }
553
+ },
554
+ {
555
+ "file": "/Users/pedro/development/personal/apple-tv-converter/CHANGELOG",
556
+ "settings":
557
+ {
558
+ "buffer_size": 1791,
559
+ "line_ending": "Unix"
560
+ }
561
+ },
562
+ {
563
+ "file": "media_converter_adapter.rb",
540
564
  "settings":
541
565
  {
542
- "buffer_size": 7405,
566
+ "buffer_size": 12149,
567
+ "line_ending": "Unix"
568
+ }
569
+ },
570
+ {
571
+ "file": "version.rb",
572
+ "settings":
573
+ {
574
+ "buffer_size": 48,
575
+ "line_ending": "Unix"
576
+ }
577
+ },
578
+ {
579
+ "file": "/Users/pedro/development/personal/apple-tv-converter/apple_tv_converter.gemspec",
580
+ "settings":
581
+ {
582
+ "buffer_size": 1102,
583
+ "line_ending": "Unix"
584
+ }
585
+ },
586
+ {
587
+ "file": "media_converter.rb",
588
+ "settings":
589
+ {
590
+ "buffer_size": 3915,
591
+ "line_ending": "Windows"
592
+ }
593
+ },
594
+ {
595
+ "file": "/Users/pedro/development/personal/apple-tv-converter/Gemfile",
596
+ "settings":
597
+ {
598
+ "buffer_size": 277,
543
599
  "line_ending": "Unix"
544
600
  }
545
601
  }
@@ -547,9 +603,17 @@
547
603
  "build_system": "",
548
604
  "command_palette":
549
605
  {
550
- "height": 269.0,
606
+ "height": 115.0,
551
607
  "selected_items":
552
608
  [
609
+ [
610
+ "ruby",
611
+ "Set Syntax: Ruby"
612
+ ],
613
+ [
614
+ "wrap",
615
+ "Word Wrap: Toggle"
616
+ ],
553
617
  [
554
618
  "wor",
555
619
  "Word Wrap: Toggle"
@@ -570,10 +634,6 @@
570
634
  "ind",
571
635
  "Indent XML"
572
636
  ],
573
- [
574
- "ruby",
575
- "Set Syntax: Ruby"
576
- ],
577
637
  [
578
638
  "dele",
579
639
  "File: Delete"
@@ -727,7 +787,7 @@
727
787
  "Package Control: Install Package"
728
788
  ]
729
789
  ],
730
- "width": 561.0
790
+ "width": 516.0
731
791
  },
732
792
  "console":
733
793
  {
@@ -748,24 +808,26 @@
748
808
  },
749
809
  "file_history":
750
810
  [
751
- "/Users/pedro/development/personal/apple-tv-converter/LICENSE",
752
- "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/version.rb",
753
- "/Users/pedro/development/personal/apple-tv-converter/README.md",
754
- "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/media_converter_mac_adapter.rb",
811
+ "/Volumes/Series/cartoons/Naruto Shippuuden/.apple-tv-converter.data",
812
+ "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/tv_db_fetcher.rb",
813
+ "/Users/pedro/development/personal/apple-tv-converter/gems/streamio-ffmpeg/lib/ffmpeg/transcoder.rb",
755
814
  "/Users/pedro/development/personal/apple-tv-converter/gems/streamio-ffmpeg/lib/ffmpeg/movie.rb",
815
+ "/Users/pedro/development/personal/apple-tv-converter/CHANGELOG",
816
+ "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/version.rb",
817
+ "/Users/pedro/development/personal/apple-tv-converter/bin/apple-tv-converter",
818
+ "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/media_converter.rb",
756
819
  "/Users/pedro/development/personal/apple-tv-converter/Gemfile",
820
+ "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/media_converter_adapter.rb",
757
821
  "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/media.rb",
822
+ "/Users/pedro/development/personal/apple-tv-converter/LICENSE",
823
+ "/Users/pedro/development/personal/apple-tv-converter/README.md",
824
+ "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/media_converter_mac_adapter.rb",
758
825
  "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter.rb",
759
- "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/tv_db_fetcher.rb",
760
- "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/media_converter_adapter.rb",
761
- "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/media_converter.rb",
762
826
  "/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/command_line.rb",
763
827
  "/Users/pedro/development/personal/apple-tv-converter/apple_tv_converter.gemspec",
764
828
  "/Users/pedro/development/personal/apple-tv-converter/gems/streamio-ffmpeg/streamio-ffmpeg.gemspec",
765
- "/Users/pedro/development/personal/apple-tv-converter/CHANGELOG",
766
829
  "/Users/pedro/development/personal/apple-tv-converter/gems/streamio-ffmpeg/lib/ffmpeg/stream.rb",
767
830
  "/Users/pedro/Downloads/SAFT_509040527_v1_02.xml",
768
- "/Users/pedro/development/personal/apple-tv-converter/bin/apple-tv-converter",
769
831
  "/Users/pedro/development/personal/apple-tv-converter/cache/tvdb/update.yml",
770
832
  "/Users/pedro/development/personal/apple-tv-converter/cache/tvdb/show_ids.yml",
771
833
  "/Volumes/Storage/Movies HD/48 Hrs./.apple-tv-converter.data",
@@ -778,7 +840,6 @@
778
840
  "/Users/pedro/development/personal/apple-tv-converter/cache/tvdb/72860.yml",
779
841
  "/Users/pedro/development/personal/apple-tv-converter/cache/tvdb/73871.yml",
780
842
  "/Users/pedro/development/personal/apple-tv-converter/Rakefile",
781
- "/Users/pedro/development/personal/apple-tv-converter/gems/streamio-ffmpeg/lib/ffmpeg/transcoder.rb",
782
843
  "/Users/pedro/development/personal/apple-tv-converter/gems/streamio-ffmpeg/Gemfile",
783
844
  "/Users/pedro/development/personal/apple-tv-converter/gems/streamio-ffmpeg/lib/streamio-ffmpeg.rb",
784
845
  "/Users/pedro/development/personal/apple-tv-converter/subtitle_1953515823.gzip",
@@ -874,8 +935,7 @@
874
935
  "/Users/pedro/development/toconline/app/views/settings/settings/general_ledger.js.erb",
875
936
  "/Users/pedro/development/toconline/lib/cloudware/toc_online/toc_form_builder.rb",
876
937
  "/Users/pedro/development/toconline/app/assets/javascripts/knockout_extensions.js",
877
- "/Users/pedro/development/toconline/app/assets/javascripts/toc_jquery.js",
878
- "/Users/pedro/development/toconline/app/models/general_ledger.rb"
938
+ "/Users/pedro/development/toconline/app/assets/javascripts/toc_jquery.js"
879
939
  ],
880
940
  "find":
881
941
  {
@@ -900,6 +960,24 @@
900
960
  "case_sensitive": false,
901
961
  "find_history":
902
962
  [
963
+ "episode_number_padding",
964
+ "use_absolute_episode_number",
965
+ "episode_number_padding",
966
+ "imdb_id",
967
+ "data_file",
968
+ "episode_filename_padding",
969
+ "2",
970
+ "plex_format_episode_filename",
971
+ "data_file",
972
+ "@data_file",
973
+ "season.rjust",
974
+ "03",
975
+ "tvdb_movie",
976
+ "tvdb_movie_data",
977
+ "tvdb_movie",
978
+ "tvdb_movie_data",
979
+ "open3",
980
+ "skip_on",
903
981
  "gem",
904
982
  "interactive",
905
983
  ".gsub(/'/, \"|\")",
@@ -1009,25 +1087,7 @@
1009
1087
  "ap ",
1010
1088
  ", st",
1011
1089
  "Shellwords.escape(",
1012
- "round(",
1013
- "sequence:",
1014
- "@@subtitles",
1015
- "Opensubtitles",
1016
- "opensubtitles",
1017
- "opensubtitles.",
1018
- "Opensubtitles.",
1019
- "subtitles",
1020
- "Subtitles",
1021
- "subtitles",
1022
- "data",
1023
- "get_subtitles",
1024
- "subtitles",
1025
- "process_search_results",
1026
- "filter_subtitles",
1027
- "data",
1028
- "get_imdb_info",
1029
- "download_subtitles",
1030
- "MediaConverter.new"
1090
+ "round("
1031
1091
  ],
1032
1092
  "highlight": true,
1033
1093
  "in_selection": false,
@@ -1053,7 +1113,7 @@
1053
1113
  "groups":
1054
1114
  [
1055
1115
  {
1056
- "selected": 1,
1116
+ "selected": 7,
1057
1117
  "sheets":
1058
1118
  [
1059
1119
  {
@@ -1069,8 +1129,8 @@
1069
1129
  "selection":
1070
1130
  [
1071
1131
  [
1072
- 403,
1073
- 403
1132
+ 0,
1133
+ 0
1074
1134
  ]
1075
1135
  ],
1076
1136
  "settings":
@@ -1080,26 +1140,26 @@
1080
1140
  "translate_tabs_to_spaces": true
1081
1141
  },
1082
1142
  "translation.x": 0.0,
1083
- "translation.y": 2695.0,
1143
+ "translation.y": 0.0,
1084
1144
  "zoom_level": 1.0
1085
1145
  },
1086
1146
  "type": "text"
1087
1147
  },
1088
1148
  {
1089
1149
  "buffer": 1,
1090
- "file": "/Users/pedro/development/personal/apple-tv-converter/gems/streamio-ffmpeg/lib/streamio-ffmpeg.rb",
1091
- "semi_transient": true,
1150
+ "file": "command_line.rb",
1151
+ "semi_transient": false,
1092
1152
  "settings":
1093
1153
  {
1094
- "buffer_size": 1186,
1154
+ "buffer_size": 7963,
1095
1155
  "regions":
1096
1156
  {
1097
1157
  },
1098
1158
  "selection":
1099
1159
  [
1100
1160
  [
1101
- 733,
1102
- 733
1161
+ 6199,
1162
+ 6213
1103
1163
  ]
1104
1164
  ],
1105
1165
  "settings":
@@ -1109,26 +1169,26 @@
1109
1169
  "translate_tabs_to_spaces": true
1110
1170
  },
1111
1171
  "translation.x": 0.0,
1112
- "translation.y": 64.0,
1172
+ "translation.y": 0.0,
1113
1173
  "zoom_level": 1.0
1114
1174
  },
1115
1175
  "type": "text"
1116
1176
  },
1117
1177
  {
1118
1178
  "buffer": 2,
1119
- "file": "command_line.rb",
1179
+ "file": "media_converter_mac_adapter.rb",
1120
1180
  "semi_transient": false,
1121
1181
  "settings":
1122
1182
  {
1123
- "buffer_size": 7405,
1183
+ "buffer_size": 7597,
1124
1184
  "regions":
1125
1185
  {
1126
1186
  },
1127
1187
  "selection":
1128
1188
  [
1129
1189
  [
1130
- 786,
1131
- 786
1190
+ 2566,
1191
+ 2566
1132
1192
  ]
1133
1193
  ],
1134
1194
  "settings":
@@ -1138,6 +1198,204 @@
1138
1198
  "translate_tabs_to_spaces": true
1139
1199
  },
1140
1200
  "translation.x": 0.0,
1201
+ "translation.y": 42.0,
1202
+ "zoom_level": 1.0
1203
+ },
1204
+ "type": "text"
1205
+ },
1206
+ {
1207
+ "buffer": 3,
1208
+ "file": "media.rb",
1209
+ "semi_transient": false,
1210
+ "settings":
1211
+ {
1212
+ "buffer_size": 8323,
1213
+ "regions":
1214
+ {
1215
+ },
1216
+ "selection":
1217
+ [
1218
+ [
1219
+ 2769,
1220
+ 2791
1221
+ ]
1222
+ ],
1223
+ "settings":
1224
+ {
1225
+ "syntax": "Packages/Ruby/Ruby.tmLanguage",
1226
+ "tab_size": 2,
1227
+ "translate_tabs_to_spaces": true
1228
+ },
1229
+ "translation.x": 0.0,
1230
+ "translation.y": 679.0,
1231
+ "zoom_level": 1.0
1232
+ },
1233
+ "type": "text"
1234
+ },
1235
+ {
1236
+ "buffer": 4,
1237
+ "file": "/Users/pedro/development/personal/apple-tv-converter/CHANGELOG",
1238
+ "semi_transient": false,
1239
+ "settings":
1240
+ {
1241
+ "buffer_size": 1791,
1242
+ "regions":
1243
+ {
1244
+ },
1245
+ "selection":
1246
+ [
1247
+ [
1248
+ 378,
1249
+ 378
1250
+ ]
1251
+ ],
1252
+ "settings":
1253
+ {
1254
+ "syntax": "Packages/Text/Plain text.tmLanguage",
1255
+ "word_wrap": true
1256
+ },
1257
+ "translation.x": 0.0,
1258
+ "translation.y": 0.0,
1259
+ "zoom_level": 1.0
1260
+ },
1261
+ "type": "text"
1262
+ },
1263
+ {
1264
+ "buffer": 5,
1265
+ "file": "media_converter_adapter.rb",
1266
+ "semi_transient": false,
1267
+ "settings":
1268
+ {
1269
+ "buffer_size": 12149,
1270
+ "regions":
1271
+ {
1272
+ },
1273
+ "selection":
1274
+ [
1275
+ [
1276
+ 171,
1277
+ 171
1278
+ ]
1279
+ ],
1280
+ "settings":
1281
+ {
1282
+ "syntax": "Packages/Ruby/Ruby.tmLanguage",
1283
+ "tab_size": 2,
1284
+ "translate_tabs_to_spaces": true
1285
+ },
1286
+ "translation.x": 0.0,
1287
+ "translation.y": 0.0,
1288
+ "zoom_level": 1.0
1289
+ },
1290
+ "type": "text"
1291
+ },
1292
+ {
1293
+ "buffer": 6,
1294
+ "file": "version.rb",
1295
+ "semi_transient": false,
1296
+ "settings":
1297
+ {
1298
+ "buffer_size": 48,
1299
+ "regions":
1300
+ {
1301
+ },
1302
+ "selection":
1303
+ [
1304
+ [
1305
+ 42,
1306
+ 42
1307
+ ]
1308
+ ],
1309
+ "settings":
1310
+ {
1311
+ "syntax": "Packages/Ruby/Ruby.tmLanguage"
1312
+ },
1313
+ "translation.x": 0.0,
1314
+ "translation.y": 0.0,
1315
+ "zoom_level": 1.0
1316
+ },
1317
+ "type": "text"
1318
+ },
1319
+ {
1320
+ "buffer": 7,
1321
+ "file": "/Users/pedro/development/personal/apple-tv-converter/apple_tv_converter.gemspec",
1322
+ "semi_transient": true,
1323
+ "settings":
1324
+ {
1325
+ "buffer_size": 1102,
1326
+ "regions":
1327
+ {
1328
+ },
1329
+ "selection":
1330
+ [
1331
+ [
1332
+ 110,
1333
+ 110
1334
+ ]
1335
+ ],
1336
+ "settings":
1337
+ {
1338
+ "syntax": "Packages/Ruby/Ruby.tmLanguage",
1339
+ "tab_size": 2,
1340
+ "translate_tabs_to_spaces": true
1341
+ },
1342
+ "translation.x": 0.0,
1343
+ "translation.y": 0.0,
1344
+ "zoom_level": 1.0
1345
+ },
1346
+ "type": "text"
1347
+ },
1348
+ {
1349
+ "buffer": 8,
1350
+ "file": "media_converter.rb",
1351
+ "semi_transient": false,
1352
+ "settings":
1353
+ {
1354
+ "buffer_size": 3915,
1355
+ "regions":
1356
+ {
1357
+ },
1358
+ "selection":
1359
+ [
1360
+ [
1361
+ 3861,
1362
+ 3861
1363
+ ]
1364
+ ],
1365
+ "settings":
1366
+ {
1367
+ "syntax": "Packages/Ruby/Ruby.tmLanguage",
1368
+ "tab_size": 2,
1369
+ "translate_tabs_to_spaces": true
1370
+ },
1371
+ "translation.x": 0.0,
1372
+ "translation.y": 803.0,
1373
+ "zoom_level": 1.0
1374
+ },
1375
+ "type": "text"
1376
+ },
1377
+ {
1378
+ "buffer": 9,
1379
+ "file": "/Users/pedro/development/personal/apple-tv-converter/Gemfile",
1380
+ "semi_transient": false,
1381
+ "settings":
1382
+ {
1383
+ "buffer_size": 277,
1384
+ "regions":
1385
+ {
1386
+ },
1387
+ "selection":
1388
+ [
1389
+ [
1390
+ 69,
1391
+ 69
1392
+ ]
1393
+ ],
1394
+ "settings":
1395
+ {
1396
+ "syntax": "Packages/Ruby/Ruby.tmLanguage"
1397
+ },
1398
+ "translation.x": 0.0,
1141
1399
  "translation.y": 0.0,
1142
1400
  "zoom_level": 1.0
1143
1401
  },
@@ -1192,6 +1450,90 @@
1192
1450
  "height": 0.0,
1193
1451
  "selected_items":
1194
1452
  [
1453
+ [
1454
+ "gemspec",
1455
+ "apple_tv_converter.gemspec"
1456
+ ],
1457
+ [
1458
+ "gemfile",
1459
+ "Gemfile"
1460
+ ],
1461
+ [
1462
+ "mediaconv",
1463
+ "lib/apple_tv_converter/media_converter.rb"
1464
+ ],
1465
+ [
1466
+ "command",
1467
+ "lib/apple_tv_converter/command_line.rb"
1468
+ ],
1469
+ [
1470
+ "tvdb",
1471
+ "lib/apple_tv_converter/tv_db_fetcher.rb"
1472
+ ],
1473
+ [
1474
+ "verion",
1475
+ "lib/apple_tv_converter/version.rb"
1476
+ ],
1477
+ [
1478
+ "ffmpegmovie",
1479
+ "gems/streamio-ffmpeg/lib/ffmpeg/movie.rb"
1480
+ ],
1481
+ [
1482
+ "media",
1483
+ "lib/apple_tv_converter/media.rb"
1484
+ ],
1485
+ [
1486
+ "ffmpetra",
1487
+ "gems/streamio-ffmpeg/lib/ffmpeg/transcoder.rb"
1488
+ ],
1489
+ [
1490
+ "binap",
1491
+ "bin/apple-tv-converter"
1492
+ ],
1493
+ [
1494
+ "gemf",
1495
+ "Gemfile"
1496
+ ],
1497
+ [
1498
+ "meda",
1499
+ "lib/apple_tv_converter/media_converter_adapter.rb"
1500
+ ],
1501
+ [
1502
+ "appl",
1503
+ "lib/apple_tv_converter.rb"
1504
+ ],
1505
+ [
1506
+ "mediacon",
1507
+ "lib/apple_tv_converter/media_converter_adapter.rb"
1508
+ ],
1509
+ [
1510
+ "ver",
1511
+ "lib/apple_tv_converter/version.rb"
1512
+ ],
1513
+ [
1514
+ "chagn",
1515
+ "CHANGELOG"
1516
+ ],
1517
+ [
1518
+ "movie",
1519
+ "gems/streamio-ffmpeg/lib/ffmpeg/movie.rb"
1520
+ ],
1521
+ [
1522
+ "comman",
1523
+ "lib/apple_tv_converter/command_line.rb"
1524
+ ],
1525
+ [
1526
+ "apple",
1527
+ "bin/apple-tv-converter"
1528
+ ],
1529
+ [
1530
+ "med",
1531
+ "lib/apple_tv_converter/media.rb"
1532
+ ],
1533
+ [
1534
+ "mac",
1535
+ "lib/apple_tv_converter/media_converter_mac_adapter.rb"
1536
+ ],
1195
1537
  [
1196
1538
  "comma",
1197
1539
  "lib/apple_tv_converter/command_line.rb"
@@ -1208,10 +1550,6 @@
1208
1550
  "version",
1209
1551
  "lib/apple_tv_converter/version.rb"
1210
1552
  ],
1211
- [
1212
- "gemspec",
1213
- "apple_tv_converter.gemspec"
1214
- ],
1215
1553
  [
1216
1554
  "gem",
1217
1555
  "Gemfile"
@@ -1224,18 +1562,10 @@
1224
1562
  "rea",
1225
1563
  "README.md"
1226
1564
  ],
1227
- [
1228
- "tvdb",
1229
- "lib/apple_tv_converter/tv_db_fetcher.rb"
1230
- ],
1231
1565
  [
1232
1566
  "medico",
1233
1567
  "lib/apple_tv_converter/media_converter_adapter.rb"
1234
1568
  ],
1235
- [
1236
- "movie",
1237
- "gems/streamio-ffmpeg/lib/ffmpeg/movie.rb"
1238
- ],
1239
1569
  [
1240
1570
  "ada",
1241
1571
  "lib/apple_tv_converter/media_converter_adapter.rb"
@@ -1244,10 +1574,6 @@
1244
1574
  "medaia",
1245
1575
  "lib/apple_tv_converter/media_converter_adapter.rb"
1246
1576
  ],
1247
- [
1248
- "mac",
1249
- "lib/apple_tv_converter/media_converter_mac_adapter.rb"
1250
- ],
1251
1577
  [
1252
1578
  "medada",
1253
1579
  "lib/apple_tv_converter/media_converter_adapter.rb"
@@ -1260,18 +1586,6 @@
1260
1586
  "ffmpegstre",
1261
1587
  "gems/streamio-ffmpeg/lib/ffmpeg/stream.rb"
1262
1588
  ],
1263
- [
1264
- "apple",
1265
- "lib/apple_tv_converter.rb"
1266
- ],
1267
- [
1268
- "gemf",
1269
- "Gemfile"
1270
- ],
1271
- [
1272
- "media",
1273
- "lib/apple_tv_converter/media.rb"
1274
- ],
1275
1589
  [
1276
1590
  "meida",
1277
1591
  "lib/apple_tv_converter/media.rb"
@@ -1280,10 +1594,6 @@
1280
1594
  "read",
1281
1595
  "README.md"
1282
1596
  ],
1283
- [
1284
- "appl",
1285
- "lib/apple_tv_converter.rb"
1286
- ],
1287
1597
  [
1288
1598
  "medima",
1289
1599
  "lib/apple_tv_converter/media_converter_mac_adapter.rb"
@@ -1296,14 +1606,6 @@
1296
1606
  "show",
1297
1607
  "cache/tvdb/show_ids.yml"
1298
1608
  ],
1299
- [
1300
- "mediacon",
1301
- "lib/apple_tv_converter/media_converter_adapter.rb"
1302
- ],
1303
- [
1304
- "command",
1305
- "lib/apple_tv_converter/command_line.rb"
1306
- ],
1307
1609
  [
1308
1610
  "re",
1309
1611
  "README.md"
@@ -1332,10 +1634,6 @@
1332
1634
  "chang",
1333
1635
  "CHANGELOG"
1334
1636
  ],
1335
- [
1336
- "gemfile",
1337
- "Gemfile"
1338
- ],
1339
1637
  [
1340
1638
  "sub",
1341
1639
  "lib/apple_tv_converter/subtitles_fetcher/opensubtitles.rb"
@@ -1388,10 +1686,6 @@
1388
1686
  "appletv",
1389
1687
  "lib/apple_tv_converter.rb"
1390
1688
  ],
1391
- [
1392
- "ver",
1393
- "lib/apple_tv_converter/version.rb"
1394
- ],
1395
1689
  [
1396
1690
  "medaiada",
1397
1691
  "lib/apple_tv_converter/media_converter_adapter.rb"
@@ -1536,10 +1830,6 @@
1536
1830
  "gemps",
1537
1831
  "streamio-ffmpeg/streamio-ffmpeg.gemspec"
1538
1832
  ],
1539
- [
1540
- "mediaconv",
1541
- "apple-tv-converter/lib/apple_tv_converter/media_converter.rb"
1542
- ],
1543
1833
  [
1544
1834
  "mediaconver",
1545
1835
  "apple-tv-converter/lib/apple_tv_converter/media_converter_adapter.rb"
@@ -1548,10 +1838,6 @@
1548
1838
  "commandline",
1549
1839
  "apple-tv-converter/lib/apple_tv_converter/command_line.rb"
1550
1840
  ],
1551
- [
1552
- "ffmpegmovie",
1553
- "streamio-ffmpeg/lib/ffmpeg/movie.rb"
1554
- ],
1555
1841
  [
1556
1842
  "enco",
1557
1843
  "streamio-ffmpeg/lib/ffmpeg/encoding_options.rb"
@@ -1588,10 +1874,6 @@
1588
1874
  "mkvread",
1589
1875
  "mkv/README.md"
1590
1876
  ],
1591
- [
1592
- "comman",
1593
- "apple-tv-converter/lib/apple_tv_converter/command_line.rb"
1594
- ],
1595
1877
  [
1596
1878
  "comm",
1597
1879
  "apple-tv-converter/lib/apple_tv_converter/command_line.rb"
@@ -1624,10 +1906,6 @@
1624
1906
  "mediaconvadap",
1625
1907
  "apple-tv-converter/lib/apple_tv_converter/media_converter_adapter.rb"
1626
1908
  ],
1627
- [
1628
- "meda",
1629
- "apple-tv-converter/lib/apple_tv_converter/media_converter_adapter.rb"
1630
- ],
1631
1909
  [
1632
1910
  "mkvtra",
1633
1911
  "mkv/lib/mkv/track.rb"
@@ -1683,26 +1961,6 @@
1683
1961
  [
1684
1962
  "appl_",
1685
1963
  "apple-tv-converter/lib/apple_tv_converter.rb"
1686
- ],
1687
- [
1688
- "apll_",
1689
- "apple-tv-converter/lib/apple_tv_converter.rb"
1690
- ],
1691
- [
1692
- "rake",
1693
- "Rakefile"
1694
- ],
1695
- [
1696
- "mediaconverada",
1697
- "lib/apple_tv_converter/media_converter_adapter.rb"
1698
- ],
1699
- [
1700
- "documnthelp",
1701
- "toconline/app/helpers/documents_helper.rb"
1702
- ],
1703
- [
1704
- "applicontr",
1705
- "toconline/app/controllers/application_controller.rb"
1706
1964
  ]
1707
1965
  ],
1708
1966
  "width": 0.0
@@ -41,6 +41,8 @@ module AppleTvConverter
41
41
  options.plex_format = false
42
42
  options.interactive = true
43
43
  options.imdb_id = nil
44
+ options.use_absolute_numbering = false
45
+ options.episode_number_padding = nil
44
46
  options.languages = []
45
47
  options.media = []
46
48
 
@@ -111,6 +113,17 @@ module AppleTvConverter
111
113
  options.skip_cleanup = true
112
114
  end
113
115
 
116
+ opts.separator ""
117
+ opts.separator "Advanced options:"
118
+
119
+ opts.on('--use-absolute-numbering', 'Use absolute numbering for TV Show episodes (specially useful for cartoons)') do |f|
120
+ options.use_absolute_numbering = true
121
+ end
122
+
123
+ opts.on('--episode-number-padding NUMBER', 'Set the episode number padding length (ie, 3 for 001, 002, etc.)') do |i|
124
+ options.episode_number_padding = i.to_i
125
+ end
126
+
114
127
  opts.separator ""
115
128
  opts.separator "Other options:"
116
129
 
@@ -4,6 +4,7 @@ module AppleTvConverter
4
4
  attr_accessor :imdb_movie, :imdb_id, :imdb_episode_id
5
5
  attr_accessor :tvdb_movie
6
6
  attr_accessor :network, :tvdb_id, :tvdb_season_id, :tvdb_episode_id, :first_air_date, :release_date, :episode_title
7
+ attr_accessor :use_absolute_episode_numbering, :episode_number_padding
7
8
  attr_reader :original_filename
8
9
 
9
10
  def self.subtitle_extensions ; ['srt', 'sub', 'ssa', 'ass'] ; end
@@ -53,9 +54,12 @@ module AppleTvConverter
53
54
  def data_file ; @data_file ||= File.join(base_location, '.apple-tv-converter.data') ; end
54
55
  def has_data_file? ; File.exists?(data_file) ; end
55
56
 
57
+ def tvdb_season_number ; @tvdb_season_number ||= media.tvdb_movie_data(@use_absolute_episode_numbering ? '1' : 'SeasonNumber') rescue nil ; end
58
+ def tvdb_episode_number ; @tvdb_episode_number ||= media.tvdb_movie_data(@use_absolute_episode_numbering ? 'absolute_number' : 'EpisodeNumber') rescue nil ; end
59
+
56
60
  def plex_format_filename
57
61
  filename = if is_tv_show_episode?
58
- %Q[#{show} - s#{season.to_s.rjust(2, '0')}e#{number.to_s.rjust(2, '0')}#{"-e#{last_number.to_s.rjust(2, '0')}" if last_number}#{" - #{episode_title.gsub(/\\|\//, '-').gsub(/\:/, '.').gsub(/&/, '&').strip}" if !episode_title.nil? && !episode_title.blank?}.mp4]
62
+ %Q[#{show} - s#{season.to_s.rjust(2, '0')}e#{number.to_s.rjust(episode_number_padding || 2, '0')}#{"-e#{last_number.to_s.rjust(episode_number_padding || 2, '0')}" if last_number}#{" - #{episode_title.gsub(/\\|\//, '-').gsub(/\:/, '.').gsub(/&/, '&').strip}" if !episode_title.nil? && !episode_title.blank?}.mp4]
59
63
  else
60
64
  "#{show} (#{release_date || imdb_movie.year}).mp4"
61
65
  end
@@ -85,7 +89,7 @@ module AppleTvConverter
85
89
 
86
90
  def quality=(value) ; @quality = value ; end
87
91
 
88
- def name ; %Q[#{show}#{" S#{season.to_s.rjust(2, '0')}E#{number.to_s.rjust(2, '0')}" if is_tv_show_episode?}] ; end
92
+ def name ; %Q[#{show}#{" S#{season.to_s.rjust(2, '0')}E#{number.to_s.rjust(episode_number_padding || 2, '0')}" if is_tv_show_episode?}] ; end
89
93
 
90
94
  def is_tv_show_episode? ; !season.nil? && !number.nil? ; end
91
95
 
@@ -116,7 +120,7 @@ module AppleTvConverter
116
120
 
117
121
  def needs_audio_conversion? ; return ffmpeg_data.audio_codec !~ /(?:aac)/i ; end
118
122
 
119
- def needs_video_conversion? ; return ffmpeg_data.video_codec !~ /(?:.*?h264|^mpeg4).*/i || ffmpeg_data.video_codec =~ /.*(?:xvid|divx).*/i ; end
123
+ def needs_video_conversion? ; return ffmpeg_data.video_codec !~ /(?:.*?h264|^mpeg4).*/i || ffmpeg_data.video_codec =~ /.*(?:xvid|divx).*/i || ffmpeg_data.video_stream =~ /h264.*?yuv420p10le/i ; end
120
124
 
121
125
  def needs_subtitles_conversion? ; return ffmpeg_data.subtitle_streams.any? ; end
122
126
 
@@ -156,6 +160,8 @@ module AppleTvConverter
156
160
 
157
161
  data[:tvdb_id] = self.tvdb_id if self.tvdb_id
158
162
  data[:imdb_id] = self.imdb_id if self.imdb_id
163
+ data[:episode_number_padding] = self.episode_number_padding if self.episode_number_padding
164
+ data[:use_absolute_episode_numbering] = self.use_absolute_episode_numbering if self.use_absolute_episode_numbering
159
165
 
160
166
  if self.is_tv_show_episode?
161
167
  episode_data = {}
@@ -180,6 +186,8 @@ module AppleTvConverter
180
186
  data = YAML.load_file(data_file)
181
187
  self.tvdb_id = data[:tvdb_id] if data.has_key?(:tvdb_id)
182
188
  self.imdb_id = data[:imdb_id] if data.has_key?(:imdb_id)
189
+ @episode_number_padding = data[:episode_number_padding] if data.has_key?(:episode_number_padding)
190
+ @use_absolute_episode_numbering = data[:use_absolute_episode_numbering] if data.has_key?(:use_absolute_episode_numbering)
183
191
  end
184
192
  rescue => e
185
193
  ap ['e', e]
@@ -12,9 +12,7 @@ module AppleTvConverter
12
12
  end
13
13
 
14
14
  def process_media(media)
15
- # Load IMDB id from options
16
- media.imdb_id ||= @options.imdb_id
17
-
15
+ apply_options_to_media! media
18
16
 
19
17
  if media.is_tv_show_episode?
20
18
  puts "* TV Show Episode information:"
@@ -85,5 +83,15 @@ module AppleTvConverter
85
83
 
86
84
  media.update_data_file!
87
85
  end
86
+
87
+ private
88
+
89
+ def apply_options_to_media!(media)
90
+ # Load IMDB id from options
91
+ media.imdb_id ||= @options.imdb_id
92
+
93
+ media.use_absolute_episode_numbering = @options.use_absolute_numbering
94
+ media.episode_number_padding = @options.episode_number_padding if @options.episode_number_padding
95
+ end
88
96
  end
89
97
  end
@@ -117,8 +117,20 @@ module AppleTvConverter
117
117
 
118
118
  # If the file has more than one audio track, map all tracks but subtitles when transcoding
119
119
  if media.audio_streams.length > 0
120
+ # Check whether to filter audio tracks (ie, we have at least one of the languages we're filtering)
121
+ filter_by_language = false
122
+
123
+ if languages.any?
124
+ media.streams.each do |stream|
125
+ if stream.type == :audio && languages.include?(stream.language ? stream.language.to_sym : stream.language)
126
+ filter_by_language = true
127
+ break
128
+ end
129
+ end
130
+ end
131
+
120
132
  media.streams.each do |stream|
121
- options[:map] << " -map #{stream.input_number}:#{stream.stream_number}" if stream.type == :video || (stream.type == :audio && (languages.empty? || languages.include?(stream.language ? stream.language.to_sym : stream.language)))
133
+ options[:map] << " -map #{stream.input_number}:#{stream.stream_number}" if stream.type == :video || (stream.type == :audio && (!filter_by_language || languages.include?(stream.language ? stream.language.to_sym : stream.language)))
122
134
  end
123
135
  end
124
136
 
@@ -53,10 +53,8 @@ module AppleTvConverter
53
53
  metadata['Director'] = media.tvdb_movie_data('Director')
54
54
  metadata['TV Show'] = media.tvdb_movie[:show][:series]['SeriesName']
55
55
  metadata['TV Show'] ||= media.show
56
- metadata['TV Season'] = media.tvdb_movie_data('SeasonNumber')
57
- metadata['TV Season'] ||= media.season
58
- metadata['TV Episode #'] = media.tvdb_movie_data('EpisodeNumber')
59
- metadata['TV Episode #'] ||= media.number
56
+ metadata['TV Season'] = media.tvdb_season_number || media.season
57
+ metadata['TV Episode #'] = media.tvdb_episode_number || media.number
60
58
  metadata['TV Network'] ||= media.tvdb_movie[:show][:series]['Network']
61
59
  metadata['Screenwriters'] = media.tvdb_movie_data('Writer').gsub(/(?:^\|)|(?:\|$)/, '').split('|').join(', ') if media.tvdb_movie_data('Writer')
62
60
 
@@ -65,7 +63,7 @@ module AppleTvConverter
65
63
  metadata['Sort Album'] = media.show
66
64
  metadata['Sort Album Artist'] = media.show
67
65
  metadata['Sort Composer'] = media.show
68
- metadata['Sort Show'] = "#{media.show} Season #{media.season.to_s.rjust(2, '0')}"
66
+ metadata['Sort Show'] = "#{media.show} Season #{(media.tvdb_season_number || media.season).to_s.rjust(2, '0')}"
69
67
 
70
68
  if media.imdb_movie
71
69
  # Fallback to IMDB data if present
@@ -74,7 +74,10 @@ module AppleTvConverter
74
74
  end
75
75
 
76
76
  return {
77
- :episode => show_data[:episodes].detect { |ep| ep['SeasonNumber'].to_i == media.season.to_i && ep['EpisodeNumber'].to_i == media.number.to_i },
77
+ :episode => show_data[:episodes].detect do |ep|
78
+ # For season 1, check the absolute number first (for cartoons, etc.), and then check the usual season/episode combo
79
+ (media.season.to_i == 1 && ep['absolute_number'].to_i == media.number.to_i) || (ep['SeasonNumber'].to_i == media.season.to_i && ep['EpisodeNumber'].to_i == media.number.to_i)
80
+ end,
78
81
  :show => show_data
79
82
  }
80
83
  end
@@ -1,3 +1,3 @@
1
1
  module AppleTvConverter
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apple-tv-converter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-22 00:00:00.000000000 Z
12
+ date: 2013-12-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -229,3 +229,4 @@ signing_key:
229
229
  specification_version: 3
230
230
  summary: Converts movies to a format playable on Apple TV.
231
231
  test_files: []
232
+ has_rdoc: