No description
Find a file
2021-09-17 10:44:17 +02:00
contrib/docker moved away from github 2021-08-25 00:22:41 +02:00
docker remove leftovers of pre-fastapi era 2021-09-17 10:21:55 +02:00
techrec fix the exception handling 2021-09-17 10:43:49 +02:00
.gitignore Generate first empty file at container startup 2021-09-15 21:53:57 +02:00
12factors.md 12factors.md format fixed 2014-04-22 11:33:05 +02:00
docker-compose.yaml Generate first empty file at container startup 2021-09-15 21:53:57 +02:00
Dockerfile quieter apt install in docker 2021-09-17 10:22:55 +02:00
LICENSE AGPL license and better readme 2014-04-14 19:06:16 +02:00
Makefile Make: allow specifying dir owner 2021-09-17 10:23:04 +02:00
MANIFEST.in FIX packaging to include static files 2019-11-15 19:20:56 +01:00
publish-release publish release script 2019-11-15 22:35:56 +01:00
README.md back to the old way of running 2021-08-25 11:50:34 +02:00
RELEASE.md More information about release 2014-05-03 17:46:45 +02:00
requirements.txt staticfiles served 2020-12-15 14:57:06 +01:00
setup.cfg help the linter a bit 2021-09-17 10:44:17 +02:00
setup.py Fix dependencies 2021-09-15 17:54:30 +02:00
techrec.spec pyinstaller funzionante 2019-11-15 23:23:05 +01:00

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

How to run

pip install .
env TECHREC_CONFIG=yourconfig.py 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

unit tests can be run with python setup.py test

screenshots

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