Language names in audio tracks and subtitles

Merge pull request #23 from OryWareKyrie/master
This commit is contained in:
Izuco 2021-07-23 18:19:04 +02:00 committed by GitHub
commit c8624cf1b4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 23 deletions

View file

@ -100,6 +100,8 @@ const buildCommandMkvMerge = (videoAndAudio, onlyVid, onlyAudio, subtitles, outp
'--audio-tracks 1'
);
args.push('--track-name 0:[Funimation]');
let trackName = subDict[vid.lang];
args.push('--track-name', `1:"${trackName}"`);
args.push(`--language 1:${getLanguageCode(vid.lang, vid.lang)}`);
hasVideo = true;
} else {
@ -107,12 +109,16 @@ const buildCommandMkvMerge = (videoAndAudio, onlyVid, onlyAudio, subtitles, outp
'--no-video',
'--audio-tracks 1'
);
let trackName = subDict[vid.lang];
args.push('--track-name', `1:"${trackName}"`);
args.push(`--language 1:${getLanguageCode(vid.lang, vid.lang)}`);
}
args.push(`"${vid.path}"`);
}
for (let aud of onlyAudio) {
let trackName = subDict[aud.lang];
args.push('--track-name', `0:"${trackName}"`);
args.push(`--language 0:${getLanguageCode(aud.lang, aud.lang)}`);
args.push(
'--no-video',
@ -121,9 +127,11 @@ const buildCommandMkvMerge = (videoAndAudio, onlyVid, onlyAudio, subtitles, outp
args.push(`"${aud.path}"`);
}
if(subtitles.length > 0){
if (subtitles.length > 0) {
for (let subObj of subtitles) {
args.push('--language',`0:${getLanguageCode(subObj.language)}`);
let trackName = subDict[subObj.language];
args.push('--track-name', `0:"${trackName}"`);
args.push('--language', `0:${getLanguageCode(subObj.language)}`);
args.push(`"${subObj.file}"`);
}
} else {
@ -135,7 +143,12 @@ const buildCommandMkvMerge = (videoAndAudio, onlyVid, onlyAudio, subtitles, outp
return args.join(' ');
};
const subDict = {
'en': 'English (United State)',
'es': 'Español (Latinoamericano)',
'pt': 'Português (Brasil)',
'ja': '日本語'
};
const getLanguageCode = (from, _default = 'eng') => {
for (let lang in iso639.iso_639_2) {
let langObj = iso639.iso_639_2[lang];

View file

@ -9,8 +9,8 @@ const availableFilenameVars = [
'height'
];
const subLang = [ 'enUS', 'esLA', 'ptBR' ];
const dubLang = [ 'enUS', 'esLA', 'ptBR', 'zhMN', 'jaJP' ];
const subLang = ['enUS', 'esLA', 'ptBR'];
const dubLang = ['enUS', 'esLA', 'ptBR', 'zhMN', 'jaJP'];
const appArgv = (cfg) => {
// init
@ -25,24 +25,24 @@ const appArgv = (cfg) => {
'duplicate-arguments-array': true,
'camel-case-expansion': false
})
// main
// main
.wrap(Math.min(120)) // yargs.terminalWidth()
.help(false).version(false)
.usage('Usage: $0 [options]')
// auth
// auth
.option('auth', {
group: 'Authentication:',
describe: 'Enter authentication mode',
type: 'boolean',
})
// search
// search
.option('search', {
alias: 'f',
group: 'Search:',
describe: 'Search show ids',
type: 'string',
})
// select show and eps
// select show and eps
.option('s', {
group: 'Downloading:',
describe: 'Sets the show id',
@ -65,7 +65,7 @@ const appArgv = (cfg) => {
type: 'number',
default: parseDefault('partsize', 10)
})
// quality
// quality
.option('q', {
group: 'Downloading:',
describe: 'Select video layer (0 is max)',
@ -73,14 +73,14 @@ const appArgv = (cfg) => {
default: parseDefault('videoLayer', 7),
type: 'number',
})
// alt listing
// alt listing
.option('alt', {
group: 'Downloading:',
describe: 'Alternative episode listing (if available)',
default: parseDefault('altList', false),
type: 'boolean',
})
// switch to subs
// switch to subs
.option('dub', {
group: 'Downloading:',
describe: 'Download non-Japanese Dub (English Dub mode by default)',
@ -113,14 +113,14 @@ const appArgv = (cfg) => {
default: false,
type: 'boolean'
})
// simulcast
// simulcast
.option('simul', {
group: 'Downloading:',
describe: 'Force downloading simulcast ver. instead of uncut ver. (if uncut ver. available)',
default: parseDefault('forceSimul', false),
type: 'boolean',
})
// server number
// server number
.option('x', {
alias: 'server',
group: 'Downloading:',
@ -129,7 +129,7 @@ const appArgv = (cfg) => {
default: parseDefault('nServer', 1),
type: 'number',
})
// skip
// skip
.option('noaudio', {
group: 'Downloading:',
describe: 'Skip downloading audio',
@ -147,7 +147,7 @@ const appArgv = (cfg) => {
type: 'boolean',
default: false
})
// proxy
// proxy
.option('proxy', {
group: 'Proxy:',
describe: 'Set http(s)/socks proxy WHATWG url',
@ -167,7 +167,7 @@ const appArgv = (cfg) => {
hidden: true,
type: 'boolean',
})
// muxing
// muxing
.option('skipmux', {
group: 'Muxing:',
describe: 'Skip muxing video and subtitles',
@ -179,7 +179,7 @@ const appArgv = (cfg) => {
default: parseDefault('mp4mux', false),
type: 'boolean'
})
// filenaming
// filenaming
.option('fileName', {
group: 'Filename Template:',
describe: `Set the filename template. Use \${variable_name} to insert variables.\nYou may use ${availableFilenameVars
@ -194,28 +194,28 @@ const appArgv = (cfg) => {
type: 'number',
default: parseDefault('numbers', 2)
})
// util
// util
.option('nocleanup', {
group: 'Utilities:',
describe: 'Dont\'t delete the input files after muxing',
default: parseDefault('noCleanUp', false),
type: 'boolean'
})
// help
// help
.option('help', {
alias: 'h',
group: 'Help:',
describe: 'Show this help',
type: 'boolean'
})
// usage
// usage
.example([
['$0 --search "My Hero"', 'search "My Hero" in title'],
['$0 -s 124389 -e 1,2,3', 'download episodes 1-3 from show with id 124389'],
['$0 -s 124389 -e 1-3,2-7,s1-2', 'download episodes 1-7 and "S"-episodes 1-2 from show with id 124389'],
])
// --
// --
.argv;
// Resolve unwanted arrays
if (argv.allDubs)