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 +6 -0
- data/README.md +5 -0
- data/lib/apple_tv_converter/apple_tv_converter.sublime-workspace +425 -167
- data/lib/apple_tv_converter/command_line.rb +13 -0
- data/lib/apple_tv_converter/media.rb +11 -3
- data/lib/apple_tv_converter/media_converter.rb +11 -3
- data/lib/apple_tv_converter/media_converter_adapter.rb +13 -1
- data/lib/apple_tv_converter/media_converter_mac_adapter.rb +3 -5
- data/lib/apple_tv_converter/tv_db_fetcher.rb +4 -1
- data/lib/apple_tv_converter/version.rb +1 -1
- metadata +3 -2
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": "
|
|
531
|
+
"file": "command_line.rb",
|
|
532
532
|
"settings":
|
|
533
533
|
{
|
|
534
|
-
"buffer_size":
|
|
534
|
+
"buffer_size": 7963,
|
|
535
535
|
"line_ending": "Unix"
|
|
536
536
|
}
|
|
537
537
|
},
|
|
538
538
|
{
|
|
539
|
-
"file": "
|
|
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":
|
|
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":
|
|
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":
|
|
790
|
+
"width": 516.0
|
|
731
791
|
},
|
|
732
792
|
"console":
|
|
733
793
|
{
|
|
@@ -748,24 +808,26 @@
|
|
|
748
808
|
},
|
|
749
809
|
"file_history":
|
|
750
810
|
[
|
|
751
|
-
"/
|
|
752
|
-
"/Users/pedro/development/personal/apple-tv-converter/lib/apple_tv_converter/
|
|
753
|
-
"/Users/pedro/development/personal/apple-tv-converter/
|
|
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":
|
|
1116
|
+
"selected": 7,
|
|
1057
1117
|
"sheets":
|
|
1058
1118
|
[
|
|
1059
1119
|
{
|
|
@@ -1069,8 +1129,8 @@
|
|
|
1069
1129
|
"selection":
|
|
1070
1130
|
[
|
|
1071
1131
|
[
|
|
1072
|
-
|
|
1073
|
-
|
|
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":
|
|
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": "
|
|
1091
|
-
"semi_transient":
|
|
1150
|
+
"file": "command_line.rb",
|
|
1151
|
+
"semi_transient": false,
|
|
1092
1152
|
"settings":
|
|
1093
1153
|
{
|
|
1094
|
-
"buffer_size":
|
|
1154
|
+
"buffer_size": 7963,
|
|
1095
1155
|
"regions":
|
|
1096
1156
|
{
|
|
1097
1157
|
},
|
|
1098
1158
|
"selection":
|
|
1099
1159
|
[
|
|
1100
1160
|
[
|
|
1101
|
-
|
|
1102
|
-
|
|
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":
|
|
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": "
|
|
1179
|
+
"file": "media_converter_mac_adapter.rb",
|
|
1120
1180
|
"semi_transient": false,
|
|
1121
1181
|
"settings":
|
|
1122
1182
|
{
|
|
1123
|
-
"buffer_size":
|
|
1183
|
+
"buffer_size": 7597,
|
|
1124
1184
|
"regions":
|
|
1125
1185
|
{
|
|
1126
1186
|
},
|
|
1127
1187
|
"selection":
|
|
1128
1188
|
[
|
|
1129
1189
|
[
|
|
1130
|
-
|
|
1131
|
-
|
|
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
|
-
|
|
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 && (
|
|
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.
|
|
57
|
-
metadata['TV
|
|
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
|
|
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
|
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.
|
|
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-
|
|
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:
|