Skip to main content
Documentation

Metadata Commands

Extract, store, and query metadata from video and media files. Dits automatically indexes technical metadata like resolution, codec, duration, and timecode for efficient searching and organization.

CommandDescriptionUsage
meta-scanScan files and extract metadatadits meta-scan [OPTIONS] [PATH]
meta-showShow metadata for a filedits meta-show <PATH>
meta-listList all stored metadatadits meta-list [OPTIONS]

dits meta-scan

Scan files and extract metadata. Useful for indexing existing files or rescanning after metadata extraction improvements.

Synopsis

dits meta-scan [OPTIONS] [PATH]

Options

--force             Rescan files with existing metadata
--deep              Extract extended metadata (slower)
--parallel <N>      Number of parallel scan jobs
--progress          Show progress bar
--json              Output results as JSON
-v, --verbose       Show detailed output

Examples

# Scan entire repository
$ dits meta-scan

Scanning for media files...

  Found: 156 media files
  Already indexed: 142
  Needs scanning: 14

Scanning: 100% ████████████████████ 14/14

Results:
  Videos: 12 (8 new)
  Audio: 2 (2 new)
  Images: 0
  Project files: 0

# Scan specific directory
$ dits meta-scan footage/

Scanning footage/...
  Scanned: 45 files
  New metadata: 45 entries

# Deep scan for extended metadata
$ dits meta-scan --deep footage/

Extracting extended metadata...
  - Color space profiles
  - Audio channel layout
  - HDR metadata (if present)
  - Camera metadata (EXIF)
  ...

# Force rescan all files
$ dits meta-scan --force

Rescanning all 156 files...
  Updated: 156 metadata entries

Extracted Metadata

File TypeStandard MetadataDeep Scan Adds
VideoResolution, codec, duration, framerate, bitrateColor space, HDR, audio layout, timecode
AudioChannels, sample rate, duration, codecBit depth, loudness (LUFS), peak levels
ImageDimensions, format, color modeEXIF, ICC profile, GPS (if present)
ProjectApplication, version, durationLinked assets, sequence settings

dits meta-show

Show detailed metadata for a specific file. Displays all extracted technical information.

Synopsis

dits meta-show [OPTIONS] &lt;PATH&gt;

Options

--json              Output as JSON
--raw               Show raw metadata (all fields)
--section <NAME>    Show only specific section

Examples

# Show metadata for video file
$ dits meta-show footage/scene01.mov

Metadata: footage/scene01.mov

File Information:
  Path:         footage/scene01.mov
  Size:         2.3 GB
  Content hash: abc123def456...
  Scanned:      2025-01-15 14:30:00

Container:
  Format:       QuickTime / MOV
  Duration:     00:05:32.15 (332.15s)
  Bitrate:      55.4 Mbps

Video Track:
  Codec:        H.264 (avc1)
  Resolution:   3840 x 2160 (16:9)
  Frame Rate:   23.976 fps
  Bit Depth:    8-bit
  Color Space:  Rec. 709
  Scan Type:    Progressive
  Bitrate:      50 Mbps
  Keyframes:    166 (every 2s)

Audio Track:
  Codec:        AAC (mp4a)
  Channels:     2 (stereo)
  Sample Rate:  48000 Hz
  Bitrate:      256 kbps

Timecode:
  Start:        01:00:00:00
  Drop Frame:   No

# Show only video section
$ dits meta-show --section video footage/scene01.mov

Video Track:
  Codec:        H.264 (avc1)
  Resolution:   3840 x 2160 (16:9)
  ...

# JSON output for scripting
$ dits meta-show --json footage/scene01.mov | jq '.video.resolution'
"3840x2160"

# Show all raw metadata
$ dits meta-show --raw footage/scene01.mov

Raw Metadata (45 fields):
  com.apple.quicktime.creationdate: 2025-01-15T10:30:00-08:00
  com.apple.quicktime.camera.identifier: C0001
  ...

dits meta-list

List all stored metadata. Filter and search across your entire media library based on technical properties.

Synopsis

dits meta-list [OPTIONS]

Options

--filter <EXPR>     Filter by metadata expression
--type <TYPE>       Filter by file type (video, audio, image)
--codec <CODEC>     Filter by codec
--resolution <RES>  Filter by resolution
--duration <RANGE>  Filter by duration range
--sort <FIELD>      Sort by field
--format <FMT>      Output format (table, json, csv)
--limit <N>         Limit results

Examples

# List all indexed files
$ dits meta-list

Indexed Files (156):

  Path                              Type    Resolution  Duration   Codec
  ────────────────────────────────────────────────────────────────────────
  footage/scene01.mov               video   3840x2160   00:05:32   H.264
  footage/scene02.mov               video   3840x2160   00:03:45   H.264
  footage/interview-a.mov           video   1920x1080   00:12:30   ProRes
  audio/music.wav                   audio   -           00:03:00   PCM
  ...

# Filter by resolution
$ dits meta-list --resolution 4K

4K Files (45):
  footage/scene01.mov               3840x2160   00:05:32
  footage/scene02.mov               3840x2160   00:03:45
  ...

# Filter by codec
$ dits meta-list --codec prores

ProRes Files (12):
  footage/interview-a.mov           1920x1080   00:12:30
  footage/interview-b.mov           1920x1080   00:15:45
  ...

# Filter by duration range
$ dits meta-list --duration ">5m"

Files longer than 5 minutes (23):
  footage/interview-a.mov           00:12:30
  footage/interview-b.mov           00:15:45
  ...

# Complex filter expression
$ dits meta-list --filter "resolution=4K AND codec=H.264 AND duration>1m"

Matching Files (32):
  ...

# Sort by duration
$ dits meta-list --sort duration --limit 10

Longest Files:
  footage/full-interview.mov        01:23:45
  footage/b-roll-collection.mov     00:45:30
  ...

# Export to CSV
$ dits meta-list --format csv > media-inventory.csv

Filter Expressions

# Filter syntax:
field=value           Exact match
field!=value          Not equal
field>value           Greater than
field<value           Less than
field>=value          Greater or equal
field<=value          Less or equal
field~pattern         Regex match

# Combine with:
AND                   Both conditions
OR                    Either condition
NOT                   Negate condition
()                    Grouping

# Examples:
resolution=4K
resolution=3840x2160
codec=H.264
codec~prores.*
duration>5m
duration>=00:30:00
framerate=23.976
bitrate>50Mbps
(codec=H.264 OR codec=H.265) AND resolution=4K

Use Cases

Media Inventory

# Generate a complete media inventory
$ dits meta-list --format csv > inventory.csv

# Summarize by codec
$ dits meta-list --format json | jq 'group_by(.codec) | map({codec: .[0].codec, count: length})'

# Find all HDR content
$ dits meta-list --filter "hdr=true"

Quality Control

# Find files that don't meet delivery specs
$ dits meta-list --filter "resolution<1920x1080"

Warning: 3 files below 1080p:
  footage/webcam.mov    1280x720
  ...

# Check for consistent frame rates
$ dits meta-list --format json | jq 'group_by(.framerate)'

Related Commands