mirror of
https://github.com/anidl/multi-downloader-nx.git
synced 2026-03-11 17:45:30 +00:00
Force Muxer command
This commit is contained in:
parent
4e055418aa
commit
595b407b22
6 changed files with 29 additions and 6 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -19,5 +19,6 @@ token.yml
|
||||||
lib
|
lib
|
||||||
test.*
|
test.*
|
||||||
updates.json
|
updates.json
|
||||||
|
funi_token.yml
|
||||||
cr_token.yml
|
cr_token.yml
|
||||||
archive.json
|
archive.json
|
||||||
|
|
@ -857,7 +857,7 @@ async function muxStreams(data: DownloadedMedia[], output: string) {
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
const bin = Merger.checkMerger(cfg.bin, argv.mp4);
|
const bin = Merger.checkMerger(cfg.bin, argv.mp4, argv.forceMuxer);
|
||||||
// collect fonts info
|
// collect fonts info
|
||||||
// mergers
|
// mergers
|
||||||
let isMuxed = false;
|
let isMuxed = false;
|
||||||
|
|
|
||||||
2
funi.ts
2
funi.ts
|
|
@ -731,7 +731,7 @@ async function downloadStreams(epsiode: FunimationMediaDownload){
|
||||||
}
|
}
|
||||||
|
|
||||||
// check exec
|
// check exec
|
||||||
const mergerBin = merger.checkMerger(cfg.bin, argv.mp4);
|
const mergerBin = merger.checkMerger(cfg.bin, argv.mp4, argv.forceMuxer);
|
||||||
|
|
||||||
if ( argv.novids ){
|
if ( argv.novids ){
|
||||||
console.log('[INFO] Video not downloaded. Skip muxing video.');
|
console.log('[INFO] Video not downloaded. Skip muxing video.');
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import yargs, { Choices } from 'yargs';
|
import yargs, { Choices } from 'yargs';
|
||||||
import { args, groups } from './module.args';
|
import { args, AvailableMuxer, groups } from './module.args';
|
||||||
|
|
||||||
yargs(process.argv.slice(2));
|
yargs(process.argv.slice(2));
|
||||||
|
|
||||||
let argvC: { [x: string]: unknown; username: string|undefined, password: string|undefined, silentAuth: boolean, skipSubMux: boolean, downloadArchive: boolean, addArchive: boolean, but: boolean, auth: boolean | undefined; dlFonts: boolean | undefined; search: string | undefined; 'search-type': string; page: number | undefined; 'search-locale': string; new: boolean | undefined; 'movie-listing': string | undefined; series: string | undefined; s: string | undefined; e: string | undefined; q: number; x: number; kstream: number; partsize: number; hslang: string; dlsubs: string[]; novids: boolean | undefined; noaudio: boolean | undefined; nosubs: boolean | undefined; dubLang: string[]; all: boolean; fontSize: number; allDubs: boolean; timeout: number; simul: boolean; mp4: boolean; skipmux: boolean | undefined; fileName: string; numbers: number; nosess: string; debug: boolean | undefined; nocleanup: boolean; help: boolean | undefined; service: 'funi' | 'crunchy'; update: boolean; fontName: string | undefined; _: (string | number)[]; $0: string; };
|
let argvC: { [x: string]: unknown; forceMuxer: AvailableMuxer|undefined; username: string|undefined, password: string|undefined, silentAuth: boolean, skipSubMux: boolean, downloadArchive: boolean, addArchive: boolean, but: boolean, auth: boolean | undefined; dlFonts: boolean | undefined; search: string | undefined; 'search-type': string; page: number | undefined; 'search-locale': string; new: boolean | undefined; 'movie-listing': string | undefined; series: string | undefined; s: string | undefined; e: string | undefined; q: number; x: number; kstream: number; partsize: number; hslang: string; dlsubs: string[]; novids: boolean | undefined; noaudio: boolean | undefined; nosubs: boolean | undefined; dubLang: string[]; all: boolean; fontSize: number; allDubs: boolean; timeout: number; simul: boolean; mp4: boolean; skipmux: boolean | undefined; fileName: string; numbers: number; nosess: string; debug: boolean | undefined; nocleanup: boolean; help: boolean | undefined; service: 'funi' | 'crunchy'; update: boolean; fontName: string | undefined; _: (string | number)[]; $0: string; };
|
||||||
|
|
||||||
export type ArgvType = typeof argvC;
|
export type ArgvType = typeof argvC;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ const availableFilenameVars: AvailableFilenameVars[] = [
|
||||||
'service'
|
'service'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
export type AvailableMuxer = 'ffmpeg' | 'mkvmerge'
|
||||||
|
export const muxer: AvailableMuxer[] = [ 'ffmpeg', 'mkvmerge' ];
|
||||||
|
|
||||||
type TAppArg<T extends boolean|string|number|unknown[]> = {
|
type TAppArg<T extends boolean|string|number|unknown[]> = {
|
||||||
name: string,
|
name: string,
|
||||||
group: keyof typeof groups,
|
group: keyof typeof groups,
|
||||||
|
|
@ -538,6 +541,19 @@ const args: TAppArg<boolean|number|string|unknown[]>[] = [
|
||||||
default: {
|
default: {
|
||||||
default: false
|
default: false
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'forceMuxer',
|
||||||
|
describe: 'Force the program to use said muxer or don\'t mux if the given muxer is not present',
|
||||||
|
docDescribe: true,
|
||||||
|
group: 'mux',
|
||||||
|
service: 'both',
|
||||||
|
type: 'string',
|
||||||
|
usage: '${muxer}',
|
||||||
|
choices: muxer,
|
||||||
|
default: {
|
||||||
|
default: undefined
|
||||||
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -201,11 +201,17 @@ class Merger {
|
||||||
|
|
||||||
public static checkMerger(bin: {
|
public static checkMerger(bin: {
|
||||||
mkvmerge?: string,
|
mkvmerge?: string,
|
||||||
ffmpeg?: string
|
ffmpeg?: string,
|
||||||
}, useMP4format: boolean) : {
|
}, useMP4format: boolean, force: AvailableMuxer|undefined) : {
|
||||||
MKVmerge?: string,
|
MKVmerge?: string,
|
||||||
FFmpeg?: string
|
FFmpeg?: string
|
||||||
} {
|
} {
|
||||||
|
if (force && bin[force]) {
|
||||||
|
return {
|
||||||
|
FFmpeg: force === 'ffmpeg' ? bin.ffmpeg : undefined,
|
||||||
|
MKVmerge: force === 'mkvmerge' ? bin.mkvmerge : undefined
|
||||||
|
};
|
||||||
|
}
|
||||||
if (useMP4format && bin.ffmpeg) {
|
if (useMP4format && bin.ffmpeg) {
|
||||||
return {
|
return {
|
||||||
FFmpeg: bin.ffmpeg
|
FFmpeg: bin.ffmpeg
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue