Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@tvkitchen/countertop

tvkitchen11LGPL-3.00.4.2TypeScript support: included

The entry point for developers who want to set up a TV Kitchen.

tv, television, ocr, captions, fingerprinting, srt, journalism, news, ccextractor, tvkitchen

readme

lint test codecov

TV Kitchen Countertop

The TV Kitchen is a playground that turns TV into data (transcripts, facial recognition, etc.) so that newsrooms can help their staff and readers better understand what is happening across various local and cable TV news outlets.

The Countertop is the entry point for developers who want to set up a TV Kitchen.

Setting up the project

If you are interested in running a copy of the TV Kitchen please review our install instructions.

If you are interested in working with TV Kitchen data please visit our website.

Starting the project

The TV Kitchen Countertop cannot yet be started directly via command line, but running a copy only involves a few lines of code:

import { Countertop } from '@tvkitchen/countertop'
import { VideoFileIngestionAppliance } from '@tvkitchen/appliance-video-file-ingestion'
const countertop = new Countertop()
countertop.addAppliance(new VideoFileIngestionAppliance({ filePath: 'video.mp4' }))
countertop.start()

Granted, this example won't do very much yet, but as you add appliances and event listeners you can start to extract data from your videos and do interesting things with that data!

You can look at the cookbook for various working examples of countertops.

Project Structure

To understand the overall architecture of the project, please review our architecture documentation.

The root structure is as follows:

- docs     // Project documentation
- services // Convenience containers for various external services (e.g. Kafka)
- src      // The primary code location itself
| - classes   // Various Countertop elements
| - tools     // Supporting code (e.g. utilities, DB singletons, etc)
| - scripts   // Supporting scripts
| - tests     // System-wide / integration tests

Participating

TV Kitchen is an open source project, and we welcome contributions of any kind.

Thank you for considering, and before diving in please follow these steps:

changelog

Changelog for @tvkitchen/countertop

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

  • The Payload class is now part of the countertop. This will replace the @tvkitchen/base-classes version of Payload.
  • TypeScript definitions related to Payload, PayloadType, and PayloadParameters are also exported.
  • New ValidationError error.
  • The Payload class now supports serialization and deserialization to bytes / Buffer.
  • The PayloadArray class is now part of the countertop. It has a slightly modified API.

0.4.2 - 2022-07-25

Fixed

  • Countertop topologies will no longer create redundant streams containing partially complete tributary sets when a more complete tributary superset is available for a given station.

0.4.1 - 2022-06-08

Changed

  • Update @tvkitchen/base-classes to version 2.0.0-alpha.2 in order to support longer streams.

0.4.0 - 2022-03-04

Changed

  • Require Node v16.
  • Update @tvkitchen/base-interfaces to version 4.0.0-alpha.5.

Added

  • The static getInputTypes and getOutputTypes Appliance methods are now provided the relevant settings values, allowing for dynamic types.

Fixed

  • Topologies with Appliances that only have a subset of their input satisfied will no longer break (Issue #149).

0.3.0 - 2021-05-13

Changed

  • Update @tvkitchen/base-classes to version 2.0.0-alpha.1.
  • Update @tvkitchen/base-interfaces to version 4.0.0-alpha.4.
  • Specify Kafka topic data retention times to 30 seconds.

Added

  • Appliances can now be added to a countertop without having sources for any given input.

0.2.1 - 2021-04-07

Changed

  • Update @tvkitchen/base-classes to version 1.4.0-alpha.2.

0.2.0 - 2020-10-18

Changed

  • Update CountertopWorker to interface with Transform-based IAppliances.

0.1.1 - 2020-09-22

Added

  • Countertop now has a default value for kafkaSettings.brokers.

    Changed

  • Removed an old configuration file.
  • Removed unused dependencies.
  • Test libraries are now properly categorized as devDependencies.

Fixed

  • Message ordering from CountertopWorkers are now guaranteed.

0.1.0 - 2020-09-09

Added

  • Initial implementation of the countertop package.