apple-tv-converter 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
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: