Skip to main content

A CLI tool for indexing video files with programmatic access

Project description

Zapdos-Py

A CLI tool for indexing video files by extracting keyframes that can also be used programmatically.

Installation

To install zapdos-py, you can use pip:

pip install zapdos-py

Or if you're using uv:

uv pip install zapdos-py

Usage

Command Line Interface

After installation, you can use the zapdos-py command:

zapdos-py <video_file_path> [--interval <seconds>]

This command will index the specified video file by extracting keyframes at regular intervals.

Programmatic Usage

You can also use zapdos-py programmatically in your Python code:

from zapdos import index

# Index a video file
try:
    frame_paths = index("path/to/your/video.mp4", interval_sec=30)
    print(f"Extracted {len(frame_paths)} frames")
except FileNotFoundError as e:
    print(f"Error: {e}")
except ValueError as e:
    print(f"Error: {e}")

Example

CLI Usage

# Extract frames every 30 seconds (default)
zapdos-py ./video.mp4

# Extract frames every 10 seconds
zapdos-py ./video.mp4 --interval 10

Programmatic Usage

from zapdos import index
from pathlib import Path

# Index a video file
video_path = Path("video.mp4")
try:
    frame_paths = index(video_path, interval_sec=30)
    print(f"Extracted {len(frame_paths)} frames")
    for path in frame_paths:
        print(f"  - {path}")
except FileNotFoundError as e:
    print(f"Error: {e}")
except ValueError as e:
    print(f"Error: {e}")

Supported Video Formats

Zapdos-Py supports the following video formats:

  • MP4 (.mp4)
  • AVI (.avi)
  • MOV (.mov)
  • MKV (.mkv)
  • WMV (.wmv)
  • FLV (.flv)
  • WEBM (.webm)
  • M4V (.m4v)
  • 3GP (.3gp, .3g2)
  • MPG/MPEG (.mpg, .mpeg, .m2v)

Development

To set up the project for development:

  1. Clone the repository
  2. Install uv if you haven't already: pip install uv
  3. Install the package in development mode:
    uv pip install --editable .
    
  4. Run the CLI tool:
    zapdos-py <video_file_path>
    

Testing

There are several ways to run the tests:

Using pytest (recommended):

pytest tests/

Using unittest directly:

python -m unittest tests.test_cli

Running the video indexer test:

python tests/test_video_indexer.py

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zapdos_py-0.2.2.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zapdos_py-0.2.2-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file zapdos_py-0.2.2.tar.gz.

File metadata

  • Download URL: zapdos_py-0.2.2.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for zapdos_py-0.2.2.tar.gz
Algorithm Hash digest
SHA256 ec4688144e053ac07c2d8511b018953a123fb5661051bc0f9934090c66bd3288
MD5 5a9999284f67d01dc1429fe98d8256aa
BLAKE2b-256 d4024806ba717f2d13d78e0338b42db5a976406c4d2d11337a725e1b47b49fc6

See more details on using hashes here.

File details

Details for the file zapdos_py-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: zapdos_py-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for zapdos_py-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2b2f010baec47bb9e1f45354f38ab72f1e22088c79f23f3fce3d6708dab54a6f
MD5 27ca822b877ebfc00ca007f549ca84f7
BLAKE2b-256 c814f548bd82fa9da29bb9265d2d5a00bf6259dcea33de1b2fbcea3b28dba10f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page