Software to recover teletext data from VHS recordings.
Python CSS


This is a suite of tools for processing teletext signals recorded on VHS, as
well as tools for processing teletext packet streams. The software has only
been tested with bt8x8 capture hardware, but should work with any VBI capture
hardware if you write a new configuration file (see

This is a rewrite of the original software using a new CUDA-accelerated
algorithm. It is much faster than the original and also somewhat more
accurate. The old code is still available in the 'v1' branch of this repo.


In order to use CUDA decoding you need to use the Nvidia proprietary driver.

Install python dependencies:

    sudo apt-get install python-numpy python-scipy python-pycuda nvidia-modprobe python-enchant
    pip install --user scikit-cuda

You can use to install, or just add the source directory to your

In order for the output to be rendered correctly you need to use a specific
font and terminal:

    sudo apt-get install tv-fonts rxvt-unicode

Then enable bitmap fonts in your X server:

    cd /etc/fonts/conf.d
    sudo rm 70-no-bitmaps.conf
    sudo ln -s ../conf.avail/70-yes-bitmaps.conf .

After doing this you may need to reboot.

Finally open a terminal with the required font:

    urxvt -fg white -bg black -fn teletext -geometry 41x25 +sb &


First capture VBI from VHS:

    vbicat /dev/vbi0 > capture.vbi

Scan for headers in the capture:

    deconvolve -H -S 20 capture.vbi > headers.txt

Examine the headers to find services on the tape:

    less -r headers.txt

Deconvolve a section of the capture corresponding to one service:

    deconvolve --start <N> --stop <N> capture.vbi > stream.t42

Display all copies of a page in a stream:

    t42pipe stream.t42 -P -p 100

Squash duplicate subpages, which reduces errors:

    t42pipe stream.t42 -S > output.t42

Generate HTML pages from a stream:

    mkdir output
    t42html stream.t42 output

Interactively view the pages in a t42 stream:

    t42service stream.t42 | t42interactive

In the interactive viewer you can type page numbers, or '.' for hold.

Run each command with '--help' for a complete list of options.