Skip to main content

STJLib

PyPI Build Status Documentation Status

A Python library for the Standard Transcription JSON (STJ) format.

Overview

STJLib provides data classes and utilities for working with STJ files, which are used to represent transcribed audio and video data in a structured, machine-readable JSON format.

For more information about the STJ format, please refer to the STJ Specification.

Documentation

Full documentation is available at stjlib.readthedocs.io. This includes:

  • Detailed API reference
  • Usage examples
  • Advanced usage guides
  • Contributing guidelines

Features

  • Full support for STJ format version 0.6.1
  • Comprehensive validation system with severity levels (ERROR, WARNING, INFO)
  • Time value precision handling with IEEE 754 round-to-nearest-even
  • Strict language code validation (ISO 639-1/639-3)
  • Support for zero-duration segments
  • Word timing modes (complete, partial, none)
  • Enhanced speaker and style validation
  • Extensions field validation with reserved namespace protection

Quick Start

Installation

pip install stjlib

Basic Usage

from stjlib import StandardTranscriptionJSON

# Load and validate an existing STJ file
stj = StandardTranscriptionJSON.from_file('path/to/file.stjson', validate=True)

# Or create a new STJ document
stj = StandardTranscriptionJSON(version="0.6.1")

# Add transcriber information
stj.metadata.transcriber = {
    "name": "TestTranscriber",
    "version": "1.0"
}

# Add a simple segment
segment = {
    "start": 0.0,
    "end": 2.0,
    "text": "Hello world"
}
stj.transcript.segments.append(segment)

# Save to file
stj.save('output.stjson')

# Access metadata and transcript data
print(stj.metadata)
print(stj.transcript)

For more examples and detailed usage instructions, please refer to our documentation.

File Format Support

STJLib supports the Standard Transcription JSON (STJ) format with the following file extensions:

  • Primary (Recommended): .stjson
  • Alternative: .stj
  • Alternative: .stj.json (systems supporting double extensions)

MIME Type: application/vnd.stj+json

Validation Features

  • Severity levels: ERROR, WARNING, INFO
  • Detailed location information in error messages
  • Time value precision validation
  • Language code validation (ISO 639-1/639-3)
  • Segment ordering and overlap validation
  • Speaker and style validation
  • URI format validation
  • Extensions validation with namespace protection

Development

Setting Up Development Environment

# Clone the repository
git clone https://github.com/yaniv-golan/stjlib.git
cd stjlib

# Install development dependencies
pip install -e .
pip install -r requirements-dev.txt

Running Tests

pytest

Releasing

Releases are automated via GitHub Actions and PyPI Trusted Publishing. See docs/internal/release-process.md for the exact steps (update changelog/version, tag vX.Y.Z, and push—CI handles the rest).

Building Documentation Locally

cd docs
make html

The documentation will be available in docs/build/html.

Contributing

We welcome contributions to stjlib! Please see our Contributing Guide for more details on how to get started.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

Metadata

Release files for stjlib 0.6.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stjlib 0.6.4
File Size Uploaded
stjlib-0.6.4.tar.gz 50.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stjlib 0.6.4
File Interpreter ABI Platform
stjlib-0.6.4-py3-none-any.whl Python 3 none any Details

Total release size: 91.1 kB

Release files / stjlib-0.6.4.tar.gz

Download URL stjlib-0.6.4.tar.gz
Size 50.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7830eba65719fbd12ef305fdb64979d1865d84624149850db1eb476ad4e1cec8
BLAKE2b-256 checksum
How to use checksums
fa12af6714e6434cbfad33bf657de94bbbd5aa1c9f28647b9ede1ceffb7d60cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 15, 2025.

Transparency log

Release files / stjlib-0.6.4-py3-none-any.whl

Download URL stjlib-0.6.4-py3-none-any.whl
Size 41.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
85ee85bd889fb7623a4cef88152a65d8c770f60a6ecaa93f9681fa16f61d38a8
BLAKE2b-256 checksum
How to use checksums
b18208fafe56a022d65f8c771ab281117c7698d2a30a1efa2eec7b1a09d320c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 15, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.4 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page