Find media files by searching in the metadata
- Node 14 or newer
- NPM 7+ series (for development) - automatically installs peer dependencies
- ffmpeg executable in
$PATH
- mediainfo executable in
$PATH
The current list of supported mime-types is
video/
However, as Mediainfo is utilised for reading the metadata, it should be fairly simple to expand that to include both audio
and image/
.
$ npm install -g media-inspector
$ media-inspector COMMAND
running command...
$ media-inspector (-v|--version|version)
media-inspector/0.4.2 darwin-arm64 node-v16.13.1
$ media-inspector --help [COMMAND]
USAGE
$ media-inspector COMMAND
...
media-inspector autocomplete [SHELL]
media-inspector cache
media-inspector help [COMMAND]
media-inspector inspect
media-inspector validate-standard STANDARDPATH
media-inspector video-errors VIDEOPATH
display autocomplete installation instructions
USAGE
$ media-inspector autocomplete [SHELL]
ARGUMENTS
SHELL shell type
OPTIONS
-r, --refresh-cache Refresh cache (ignores displaying instructions)
EXAMPLES
$ media-inspector autocomplete
$ media-inspector autocomplete bash
$ media-inspector autocomplete zsh
$ media-inspector autocomplete --refresh-cache
See code: @oclif/plugin-autocomplete
Cache metadata for a directory structure as JSON
USAGE
$ media-inspector cache
OPTIONS
-r, --read=read (required) Path of a directory or file to read
-w, --write=write (required) Path of where to write the metadata cache as JSON
EXAMPLES
$ media-inspector cache -r ~/Downloads -w downloads.json
$ media-inspector cache -r ~/Downloads/file.ext -w file.json
$ media-inspector cache -r /Users/username/Downloads -w ~/Desktop/downloads.json
See code: src/cli/commands/cache.ts
display help for media-inspector
USAGE
$ media-inspector help [COMMAND]
ARGUMENTS
COMMAND command to show help for
OPTIONS
--all see all commands in CLI
See code: @oclif/plugin-help
Inspect input and hold it up to a standard
USAGE
$ media-inspector inspect
OPTIONS
-i, --includeAuxiliary Will also include empty directories and 'container' directories
-r, --read=read (required) Path of a directory or file, or a metadata cache file to read
-s, --standard=standard (required) Path of the standard to apply in JSON or JSON5
-v, --verbose Enable to get detailed information and progress
EXAMPLES
$ media-inspector inspect -r ~/Downloads -s ./examples/standard-default.json5
$ media-inspector inspect -r ~/Downloads/file.ext -s ./examples/standard-default.json5
$ media-inspector inspect -r downloads.json -s ./examples/standard-default.json5
$ media-inspector inspect -r downloads.json -s ./examples/standard-default.json5 -i -v
See code: src/cli/commands/inspect.ts
Validate standard
USAGE
$ media-inspector validate-standard STANDARDPATH
ARGUMENTS
STANDARDPATH Path to a definition of a standard in JSON or JSON5
EXAMPLE
$ media-inspector validate-standard ./examples/standard-default.json5
See code: src/cli/commands/validate-standard.ts
Checks video files for errors by decoding them
USAGE
$ media-inspector video-errors VIDEOPATH
ARGUMENTS
VIDEOPATH Path to video file or directory of video files
OPTIONS
-d, --demux-only Skip decode and demux only
-e, --ext=ext File extensions to match - default: all
-p, --parallel=parallel (required) [default: 1] Number of parallel processes to utilise for decoding - default: 1
-v, --verbose Enable to get detailed information and progress
EXAMPLES
$ media-inspector video-errors ./path/to/video.ext
$ media-inspector video-errors ./path/to/directory-with-video-files
$ media-inspector video-errors ./path/to/directory-with-video-files --ext .ts,.mp4 --parallel 4
See code: src/cli/commands/video-errors.ts
Definition of what constitutes a Standard
A Standard describes the acceptable standard of files of different types. This is defined in a file as Rules, which all have to be satisfied, in order to meet the Standard.
Depending on the type, different types of Rules - and additional configuration options - are available.
A Rule is defined by
name
- A recognizable name.match
- Criteria for determining if the Rule should be applied to a file.type
- The type of Rule. Determines what theconditions
are applied on.conditions
- A list of Conditions, that all must be satisfied for the Rule to be satisfied for a given file.
A Condition is defined by
path
- The path to a field, within the output generated by applying the Rule type on a given file.operator
- The operator to apply. E.g.>=
,<
,=
,in
, and more.value
- The value to use. The allowed values depends on theoperator
.
And should be interpreted as: Value at path
must satisfy operator
for value
.
If the value of video.width = 720
, then the following condition would not be satisfied as 720 >= 1280
is false
.
{
path: 'video-standard.width',
operator: '>=',
value: '1280'
}
A file need to satisfy all Rules that it matches. If it doesn't, it is considered a match for investigation / purging / ...