Skip to main content

TechRec

A Python3 web application that assist radio speakers in recording their shows. Meant to be simple to install and to maintain.

It basically takes a directory with the continuous recording and create new files "cutting/pasting" with ffmpeg.

Features

  • little system dependencies: python3 and ffmpeg
  • The interface is extremely simple to use
  • Supports nested recording (ie: to record an interview inside of a whole show)
  • There is no user system: any user opening the website will see the complete status of the applications. There is, also, nothing stored in cookie or similar mechanisms. This means that recording a session does not require a browser to remain open, or any kind of persistence client-side: server-side does it all. It also means that authorization must be done on another layer (for example, your webserver could add a Basic Auth)

How does it work

We suppose that you have a continous recording of your radio broadcasting. What techrec does is taking files from this directory and "cutting/pasting" parts of them. This can boil down to something like

ffmpeg -i concat:2014-20-01-00-00.mp3|2014-20-01-00-01.mp3 -acodec copy -ss 160 -t 1840 foo.mp3

This continous recording needs to be configured so that:

  • It can be split in multiple directories, but the granularity of this must be below one directory per day.
  • The filename must be fully informative, without looking at the parent directories.

How to run

pip install .
env TECHREC_CONFIG=yourconfig.toml techrec serve

Implementation details

It is based on fastapi, a really nice framework. Simple APIs are offered through it, and the static site uses them through JS.

Jobs are not dispatched using stuff like celery, but just using BackgroundTasks, in order to keep the installation as simple as possible.

The encoding part is delegated to ffmpeg, but the code is really modular so changing this is a breeze. To be quicker and avoid the quality issues related to reencoding, the codec "copy" is used: this means that input and output must have the same format.

testing

gitlab-runner exec docker test

(or, pytest-3, assuming you have a properly configured system)

screenshots

See screenshots at https://boyska.degenerazione.xyz/proj/techrec/

Metadata

Release files for techrec 2.1.0

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

Built distribution (wheel)

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

Release files / techrec-2.1.0-py3-none-any.whl

Download URL techrec-2.1.0-py3-none-any.whl
Size 469.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e56b6caf4d0c0cca7b4fdc65425292d30aa6a3e64ad8497cad0a1cca3a441b75
BLAKE2b-256 checksum
How to use checksums
1d8683623e673f7f389f614fc2e67c37795d99e9a3a8748d696b18501d805652
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Security for techrec 2.1.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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