{"id":24558058,"url":"https://github.com/rse/rundown","last_synced_at":"2026-01-03T13:32:37.013Z","repository":{"id":211701495,"uuid":"729777447","full_name":"rse/rundown","owner":"rse","description":"Generate Rundown Scripts for Teleprompting","archived":false,"fork":false,"pushed_at":"2025-01-06T09:56:57.000Z","size":1761,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-10T10:46:47.887Z","etag":null,"topics":["cue","prompter","rundown"],"latest_commit_sha":null,"homepage":"https://npmjs.com/@rse/rundown","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-10T10:29:11.000Z","updated_at":"2025-01-06T09:57:00.000Z","dependencies_parsed_at":"2023-12-10T10:40:17.720Z","dependency_job_id":"249d643d-cb05-412e-9d8a-402726b9e50a","html_url":"https://github.com/rse/rundown","commit_stats":null,"previous_names":["rse/rundown"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rse%2Frundown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rse%2Frundown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rse%2Frundown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rse%2Frundown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rse","download_url":"https://codeload.github.com/rse/rundown/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243918629,"owners_count":20368745,"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":["cue","prompter","rundown"],"created_at":"2025-01-23T05:47:16.229Z","updated_at":"2026-01-03T13:32:37.007Z","avatar_url":"https://github.com/rse.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cimg src=\"https://raw.githubusercontent.com/rse/rundown/master/rundown-1-doc/rundown-logo.svg\" width=\"200\" align=\"right\" alt=\"\"/\u003e\n\nRundown\n=======\n\n**Render Rundown Scripts for Teleprompting**\n\n[![github (author stars)](https://img.shields.io/github/stars/rse?logo=github\u0026label=author%20stars\u0026color=%233377aa)](https://github.com/rse)\n[![github (author followers)](https://img.shields.io/github/followers/rse?label=author%20followers\u0026logo=github\u0026color=%234477aa)](https://github.com/rse)\n[![github (project stdver)](https://img.shields.io/github/package-json/version/rse/rundown?logo=github\u0026label=project%20stdver\u0026color=%234477aa\u0026cacheSeconds=900)](https://github.com/rse/rundown)\n\nAbstract\n--------\n\n**Rundown** is a toolkit for rendering *rundown scripts* for\nteleprompting. It reads a style-driven *Microsoft Word* format file\n(`*.docx`) as its \"single source of truth\", extracts columns of a\nparticular table from it, and renders a typographically strong and\nsmooth scrolling HTML output for use in a browser-based teleprompting\nscenario.\n\n**Rundown** consists of a library, providing the base functionality, and\nboth a command-line interface and Web user interface for driving\nthe functionality. The teleprompting view can be rendered ad-hoc in batch,\ncontinuously in batch, or interactively.\n\nAdditionally, **Rundown** can remote control *Microsoft PowerPoint* for\ndriving a companion slideset, or remote control *Bitfocus Companion* for\ndriving dependent aspects of an event, like audio and video. Finally,\n**Rundown** optionally provides a auto-scrolling functionality, based on\nclient-side Speech-to-Text conversion and fuzzy text matching.\n\n**Rundown** is a rather opinionated solution from *Dr. Ralf S.\nEngelschall*, CTO of the msg group, based on years of experience\nwith live events at his *msg Filmstudio*. It is provided as\n[Open Source](https://opensource.org/) software under the\n[General Public License](LICENSE.txt).\n\nImpressions\n-----------\n\nThe following is the rundown script input in Microsoft Word:\n\n![screenshot](rundown-1-doc/rundown-screenshot-5.png)\n\nThe following is a side-by-side view of the Microsoft Word rundown\nscript input on the left, and the rendered teleprompter view on the\nright:\n\n![screenshot](rundown-1-doc/rundown-screenshot-1.png)\n\nThe following is the rendered prompting view in the original 16:9 aspect ratio,\nas shown in the studio on the teleprompters:\n\n![screenshot](rundown-1-doc/rundown-screenshot-4.png)\n\nThe following are two screenshots of the interactive web user interface,\nshowing the buttons to download and upload the rundown script, and the\nsupported keystrokes for controlling the scrolling of the rendered\nteleprompter view:\n\n![screenshot](rundown-1-doc/rundown-screenshot-2.png)\n![screenshot](rundown-1-doc/rundown-screenshot-3.png)\n\nCentral Application\n-------------------\n\nVisit the URL https://rundown.studio.msg.team/ to load a centrally\ndeployed **Rundown** as a Web UI application into your local browser\nand then, fully offline, use local download and upload operations from\nwithin this application.\n\nNOTICE: This application is a client-side-only application, i.e., once\nthe application is loaded, there is no more server communication, as\nthe DOCX to HTML conversion is performed directly within this Web\napplication. As a consequence, your DOCX input and the corresponding\nrendered HTML output never leave your local browser sandbox. Also, the\napplication, once loaded, can operate fully offline.\n\nInstallation\n------------\n\n```\n$ git clone https://github.com/rse/rundown\n$ npm install\n$ npm start build\n```\n\nUsage\n-----\n\n- **CMD** Mode (One-Shot Conversion)\n\n  Render the DOCX input to an HTML output in a one-shot conversion mode.\n  The conversion itself is performed locally in the started tool process.\n\n    ```\n    # with Rundown source tree\n    $ npm run rundown -o      rundown-1-doc/rundown-template.html  rundown-1-doc/rundown-template.docx\n    $ npm run rundown -o - - \u003erundown-1-doc/rundown-template.html \u003crundown-1-doc/rundown-template.docx\n\n    # with Rundown archive distribution\n    $ rundown-cli -o      rundown-template.html  rundown-template.docx\n    $ rundown-cli -o - - \u003erundown-template.html \u003crundown-template.docx\n\n    # with Rundown Docker distribution\n    $ docker run -v .:/work engelschall/rundown rundown-cli -o     /work/rundown-template.html /work/rundown-template.docx\n    $ docker run -i         engelschall/rundown rundown-cli -o - -      \u003erundown-template.html      \u003crundown-template.docx\n    ```\n\n- **WEB** Mode (Continuous Conversion)\n\n  Render the DOCX input to an HTML output in a continuous conversion mode.\n  The conversion itself is performed locally in the started service process.\n\n    ```\n    # with Rundown source tree\n    $ npm run rundown -v info -a 127.0.0.1 -p 8888 -m web ./rundown-1-doc\n\n    # with Rundown archive distribution\n    $ rundown-cli -v info -a 127.0.0.1 -p 8888 -m web .\n\n    # with Rundown Docker distribution\n    $ docker run -p 8888:8888 -v .:/work engelschall/rundown rundown-cli -v info -p 8888 -m web /work\n    ```\n\n    ```\n    $ open http://127.0.0.1:8888\n    ```\n\n- **WEB-UI** Mode (Interactive Conversion, Local)\n\n  Render the DOCX input to an HTML output in an interactive conversion mode,\n  where the application is loaded locally. The conversion itself is performed\n  locally in the browser.\n\n    ```\n    # with Rundown source tree\n    $ npm run rundown -v info -a 127.0.0.1 -p 8888 -m web-ui\n\n    # with Rundown archive distribution\n    $ rundown-cli -v info -a 127.0.0.1 -p 8888 -m web-ui\n\n    # with Rundown Docker distribution\n    $ docker run -p 8888:8888 engelschall/rundown rundown-cli -v info -o 8888 -m web-ui\n    ```\n\n    ```\n    $ open http://127.0.0.1:8888\n    ```\n\n- **WEB-UI** Mode (Interactive Conversion, Central)\n\n  Render the DOCX input to an HTML output in an interactive conversion mode,\n  where the application is loaded remotely. The conversion itself is performed\n  locally in the browser.\n\n    ```\n    $ open https://rundown.studio.msg.team/\n    ```\n\nDesign Criterias\n----------------\n\nThe design of **Rundown** strictly followed the following particular design criterias, driven by\nthe experiences and demands at the *msg Filmstudio* of the author *Dr. Ralf S. Engelschall*:\n\n- **Input**:\n    - **Collaborative Input Editing**:\n      Allow rundown script preparation to be done in a fully\n      *collabortively edited* Microsoft Word document.\n    - **Table-Based Input**:\n      Keep table format in Word-based rundown script, people are already used to.\n    - **Style-Based Input**:\n      Consistently use Microsoft Word *styles* in rundown script for\n      unambiguous semantics and conversion.\n    - **Experience-Driven Markups**:\n      Support all *necessary markups* from the years of live event experience.\n    - **Distinguished Control \u0026 Content**:\n      Distinguish between control (left side of table) and content\n      (right side of table) in rundown script.\n\n- **Output**:\n    - **Auto-Conversion**:\n      Allow rundown script to be *automatically* (within a minute)\n      converted into the rendered teleprompter view.\n    - **Single Source of Truth**:\n      Intentionally do *not support any editing* of the rendered\n      teleprompter view, as the single source of truth is the Microsoft Word document.\n    - **Incremental Rendering Updates**:\n      Allow rendered teleprompter view to be *incrementally updated*,\n      especially during event dry-runs and optionally also just before going\n      live in events.\n\n- **Style**:\n    - **Light Input**:\n      Use light-mode in Microsoft Word based rundown script to also support printing.\n    - **Dark Output**:\n      Use dark-mode in rendered teleprompter view to avoid outshine effects on cameras.\n    - **Aligned Input/Output**:\n      Optically align light-mode rundown script and dark-mode\n      teleprompter view as close as possible.\n    - **Strong Typography**:\n      Use strong typographic conventions in both rundown script and teleprompter view\n      for a pleasant optical appearance.\n\n- **Rendering**:\n    - **Speaker Indicators**:\n      Always show an active speaker indicator in teleprompter view, so\n      that, at any time, one knows who is currently speaking.\n    - **Progress Indicators**:\n      Always show a progress indicator in teleprompter view,\n      so that, at any time, one knows where one is within the event.\n    - **Text Size Adjustment**:\n      Support text size adjustments in teleprompter view within reasonable ranges only.\n    - **Reduced Eye Wandering**:\n      Ensure that lines do not become too wide in teleprompter views,\n      to avoid too much wandering of the eyes.\n    - **Smooth Scrolling**:\n      Support very smooth scrolling in the teleprompter view.\n    - **Dial Controller Support**:\n      Support dial controller (Prompter People Shuttle Pro) for controlling the scrolling.\n    - **Presenter Preflights**:\n      Allow presenters to in-advance preflight their prompting session.\n    - **Confidential Preflights**:\n      Support fully local preflights for confidential rundown script content.\n    - **Optional Application Control**:\n      Support optional controlling of external applications through embedded state styles.\n    - **Locked Production**:\n      Support a locked production mode where certain dangerous interactions are disabled.\n    - **Automatic Scrolling**:\n      Support the automatic scrolling of English and German teleprompting texts\n      through client-side Speech-to-Text conversion and fuzzy text matching.\n\nArchitecture\n------------\n\nThe **Rundown** toolkit consists of the following parts:\n\n- [rundown-1-doc: input documents](rundown-1-doc/)\n- [rundown-2-rnd: output rendering](rundown-2-rnd/)\n- [rundown-3-lib: rendering library](rundown-3-lib/)\n- [rundown-4-web: web interface](rundown-4-web/)\n- [rundown-5-cli: command-line interface](rundown-5-cli/)\n- [rundown-6-brd: command-line interface of bridge](rundown-6-brd/)\n- [rundown-7-dst: distribution assembly line](rundown-7-dst/)\n\nThose parts form an architecture which allows various use cases:\n\n![screenshot](rundown-1-doc/rundown-architecture.png)\n\nLicense\n-------\n\nCopyright \u0026copy; 2023-2025 Dr. Ralf S. Engelschall (http://engelschall.com/)\u003cbr/\u003e\nLicensed under [GPL 3.0](https://spdx.org/licenses/GPL-3.0-only)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frse%2Frundown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frse%2Frundown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frse%2Frundown/lists"}