{"id":27954445,"url":"https://github.com/ebu/ebu-tt-live-toolkit","last_synced_at":"2025-05-07T17:29:35.718Z","repository":{"id":3434708,"uuid":"49490064","full_name":"ebu/ebu-tt-live-toolkit","owner":"ebu","description":"Toolkit for supporting the EBU-TT Live specification","archived":false,"fork":false,"pushed_at":"2023-10-11T15:09:12.000Z","size":117381,"stargazers_count":25,"open_issues_count":104,"forks_count":10,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-06-21T18:44:51.189Z","etag":null,"topics":["broadcast","captioning","captions","ebu-tt","live","python","subtitles","subtitling","video"],"latest_commit_sha":null,"homepage":"http://ebu.github.io/ebu-tt-live-toolkit/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ebu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-01-12T09:41:21.000Z","updated_at":"2024-01-22T22:35:08.000Z","dependencies_parsed_at":"2024-01-07T13:07:36.282Z","dependency_job_id":null,"html_url":"https://github.com/ebu/ebu-tt-live-toolkit","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebu%2Febu-tt-live-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebu%2Febu-tt-live-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebu%2Febu-tt-live-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebu%2Febu-tt-live-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebu","download_url":"https://codeload.github.com/ebu/ebu-tt-live-toolkit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252926213,"owners_count":21826266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["broadcast","captioning","captions","ebu-tt","live","python","subtitles","subtitling","video"],"created_at":"2025-05-07T17:29:34.906Z","updated_at":"2025-05-07T17:29:35.700Z","avatar_url":"https://github.com/ebu.png","language":"Python","funding_links":[],"categories":["Subtitling"],"sub_categories":[],"readme":"![Build Status](https://github.com/ebu/ebu-tt-live-toolkit/actions/workflows/test.yml/badge.svg)\n![Build Status](https://github.com/ebu/ebu-tt-live-toolkit/actions/workflows/docs_and_ui.yml/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/ebu/ebu-tt-live-toolkit/badge.svg?branch=ebu_master)](https://coveralls.io/github/ebu/ebu-tt-live-toolkit?branch=ebu_master)\n\n# ebu-tt-live-toolkit\n\nThis is the repository for the interoperability kit of [EBU-TT Live](https://tech.ebu.ch/publications/tech3370).\n\nThe kit is envisaged to contain a set of components for generating, testing and distributing subtitle documents in EBU-TT Part 3 format.\n\nThis is an open source project. Anyone is welcome to contribute to the development of the components. Please see the [wiki](https://github.com/ebu/ebu-tt-live-toolkit/wiki) for the list of required components, guidelines and release plan.\n\nThe project home page is at [http://ebu.github.io/ebu-tt-live-toolkit/](http://ebu.github.io/ebu-tt-live-toolkit/) and links to the pre-built documentation.\n\nWe have a Slack team called [ebu-tt-lit](https://ebu-tt-lit.slack.com) for day to day communications, questions etc. Please join up!\n\nIf you would like to contribute or join the Slack team, please contact \u003csubtitling@ebu.ch\u003e or \u003cnigel.megitt@bbc.co.uk\u003e\n\nPreparing the build environment\n===============================\n\nMake sure you have python 2.7+. Make sure you have python virtual environment capability.\n\nIf not you can install virtualenv systemwide from your operating system's package repository\nor by pip:\n\n    sudo pip install virtualenv\n\nAfter that creating a virtual environment should be as simple as:\n\n    virtualenv env\n\nLet's activate it (source makes sure the current shell executes the script\nand assumes the environment variables that the activation script sets):\n\n    source ./env/bin/activate\n\nTo build the project you will also need node.js. Please read the instructions for your system [here](https://nodejs.org/en/download/package-manager/).\n\nAfter having created the python virtual environment, having activated it and having installed node.js the package\ncan be built by typing make if you have GNU build tooling on your system.\n\n    make\n\n\nAlternatively:\n\n    pip install -r requirements.txt\n    python setup.py develop\n\n    pyxbgen --binding-root=./ebu_tt_live/bindings -m __init__ --schema-root=./ebu_tt_live/xsd/ -r -u ebutt_all.xsd\n\n    npm install nunjucks\n    node_modules/nunjucks/bin/precompile ebu_tt_live/ui/user_input_producer/template/user_input_producer_template.xml \u003e ebu_tt_live/ui/user_input_producer/template/user_input_producer_template.js\n\nAfter this you are supposed to be able to launch the command line tools this python package\nprovides i.e.:\n\n    ebu-dummy-encoder\n\nWindows users\n=============\n\nWindows is not the best friend of Makefiles. So there is a make.bat file for those who would like to develop using\nWindows. Assuming python 2.7 and virtualenv is installed and are on the PATH. To build the project you will also need node.js. Please read the instructions for your system [here](https://nodejs.org/en/download/package-manager/). Then run :\n\n    make\n\nThis will make sure a virtual environment is created and activated and installs all the tools into it.\n\nAfter that the following command should work:\n\n    ebu-dummy-encoder\n\nThe Schema definitions XSD\n==========================\n\nThe schema definitions are to be found embedded in the Python library in the xsd1.1 subfolder.\nThe root schemadocument is called *ebutt_live.xsd*.\n\nThe Python library\n==================\n\nThe library uses XSD schemas from the xsd1.1 subdirectory.\nThe bindings will keep the validation sane and PyXB makes sure that updates are working as\nexpected. Should the schema be modified a regeneration can be run and the bindings will respect\nthe changes.\n\nScripts\n=======\n\nThere are several scripts that emulate different components (nodes) in the infrastructure. They can be executed individually or in combinations by running `ebu-run`. Assuming the Makefile worked, the package is installed in a virtual environment and the virtual environment is active, the components should be available by running the `ebu-run` script and passing a configuration file. There are several example configuration files in `examples/config`. For the complete list see of scripts see `docs/build/html/scripts_and_their_functions.html`.\n\nBelow is a list of some of the key components. .\n\nThe simple producer is the beginning of the data pipeline. It generates EBU-TT-Live documents in a timed manner. In the repository root there is a *test.html* file that can be used for manual testing of the producer in any websocket capable browser. To run it use `ebu-run`:\n\n    `ebu-run --admin.conf ebu_tt_live/examples/config/simple_producer.json`\n\nThe simple consumer connects to the producer or later on in the pipeline, assuming there are more components inserted.\n\n  `ebu-run --admin.conf ebu_tt_live/examples/config/simple_consumer.json`\n\nThe User Input producer is a web page with a user interface that allows you to send subtitle documents and view the output of a downstream node. For complete documentation see `docs/build/html/user_input_producer.html`.\n\nTo run a configuration of components, use a configuration file with multiple nodes defined. For example, this will create 3 nodes: a distributer that listens to the UIP and two consumers that subscribe to the distributer:\n\n  `ebu-run --admin.conf ebu_tt_live/examples/config/user_input_producer_dist_consumers.json`   \n\nDocumentation\n=============\n\n**Go straight to the [pre-built documentation for the current master branch](http://ebu.github.io/ebu-tt-live-toolkit/html/index.html).**\n\nThe documentation framework uses the popular Sphinx documentation generating engine and autodoc plugins to give\ndevelopers the flexibility of writing Extra documentation interleaved with the autogenerated documentation created by\nautodoc.\n\n## Prerequisite: Graphviz\n\nTo display the images in the documentation, you need to have [Graphviz](http://www.graphviz.org/) installed and make sure the *dot* executable is on the PATH. For example, for users of [homebrew](http://brew.sh/):\n\n    brew install graphviz\n\n## Generating documentation\n\nDocumentation can be generated based on the sources in the docs/source directory. After having installed the packages in\nrequirements.txt (which is done automatically by the make command) documentation can be generated by one of the\nfollowing three ways:\n\n 1 Calling setuptools\n\n```Shell\npython setup.py build_sphinx\n```\n\n 2 Running make in the docs directory where separate makefiles and a make.bat file is giving a variety of options.\n\n```Shell\ncd docs\nmake html\n```\n\n 3 Calling the sphinx-build command line script that comes with sphinx. WARNING: Platform-dependent path-separators.\n\n```Shell\nsphinx-build -b html docs/source/ docs/build/html\n```\n\n## Previewing the documentation\n\nAfter sphinx finished with a successful execution log the generated documentation should be accessible by opening the\ndocs/build/html/index.html in any web browser.\n\nTests\n=====\n\nThe test framework is described in [CONTRIBUTING.md](CONTRIBUTING.md)\n\nHow to contribute\n=================\n\nPlease refer to [CONTRIBUTING.md](CONTRIBUTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febu%2Febu-tt-live-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febu%2Febu-tt-live-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febu%2Febu-tt-live-toolkit/lists"}