Home | Media |     Share This Page
Teleprompter Online

Version 2 of this teleprompter display.

P. Lutus Message Page

Copyright © 2020, P. Lutus

Most recent update:

Overview | Web-Based Instructions | Local-network Instructions | Game Controller Support | Conclusion | Version History

(double-click any word to see its definition)

Go directly to teleprompter display

NOTE: This is a new Teleprompter (version 2). This version uses a file dialog to load user scripts, a significant improvement over the old copy/paste method.

This introduces a free (GPL licensed) no-strings Web-based teleprompter display that can be used with any device having network access and an installed Web browser, including Android and iPad tablets and phones, the most common devices used with teleprompters in video work.

To use the teleprompter display, the user needs to acquire a Bluetooth keyboard paired to the display tablet/phone. The keyboard serves as a remote configuration and scrolling control, because the tablet's local soft keyboard is inaccessible while the tablet is being used as a teleprompter display.


The teleprompter initially shows a sample text, but once the system has been set up, the user replaces this text with any text file that can be read by the tablet. Instructions are provided below for transfer of the script text from a tablet source to the displayed Web page. The local browser retains the user-provided text between display sessions indefinitely until it's replaced by the user, and no information is transmitted to this server — the user's provided text and settings are located only in the tablet browser's local storage area.


Once the required text has been loaded, the user (or an assistant) remotely controls the display with the Bluetooth keyboard and the supported game controller if available. Controls include start/stop scroll, vertical and horizontal margins, text size, scroll speed, forward/reverse scroll, and restart. These features are more fully described below.

Some research reveals there is a foot-pedal available, able to start/stop the scroll and change scroll speed, and it should work with this program (but untested).

Scope and Licensing

This teleprompter display is © Copyright 2020, P. Lutus and is released under the GPL, which means you're free to use it without limitations and adapt it to your own needs. There's no advertising, no "get pro" nonsense, and no use limits. In other words, this is an old-fashioned Web application whose sole purpose is to serve your needs.

Web-Based Instructions

Here are step-by-step instructions for the teleprompter display:

  • Loading User Content

  • First, transfer your script text file(s) to the tablet/phone in whatever way is most convenient.
  • In the tablet/phone chosen for your teleprompter display, run a browser and bring up this page (the teleprompter display page). Then, to load your desired text:
    • The easy way (version 2+):
      • Click the file dialog button, first item in the option list.
      • From the option list that will appear, select a file explorer.
      • Navigate to the desired script file and select it.
      • These actions will load the selected script text into the display.
    • The hard way (now deprecated, the above file dialog method is much easier):
      • Run a file explorer on the tablet/phone and navigate to the location of your script file.
      • Put the script file on display by, for example, choosing a text editor, word processor or browser to display it.
      • Double-tap the displayed text to activate the copy/paste dialog. The display should look more or less like this:

      • In the displayed copy/paste dialog (upper center), choose "Select All," then "Copy."
      • Move to the teleprompter page and double-tap the User Text area to activate the copy/paste dialog (it may be necessary to dismiss a soft keyboard at this stage). The display should look more or less like this:

      • Press "Select All", then "Paste". This will replace the original text with your script content.

    • For both the above methods, if you exit the teleprompter page, your displayed script, and any custom user settings you may have made, will be preserved by your local browser for your next visit.
    • To clarify, your displayed text, and any custom user settings, are saved only in the tablet browser's local storage, nowhere else — this page does no data sharing or collection whatsoever.
  • Customization and Display

    • If you haven't enabled the Bluetooth keyboard and paired it with the display tablet/phone, do it now.
    • Review the control list at the left of the teleprompter page (also shown above), see what the various keys do.
    • Press 's' to switch to, as well as start/pause, the scrolling text display (same function as the space bar).
    • Press the keyboard space bar to start/stop the scrolling text display (same as 's').
    • Press a shift key and the keyboard space bar to start/stop a reverse text display scroll.
    • Press 'q' (quit) to switch from the text scroll display to the setup page.
    • Press 'x' to mirror-reverse the X axis. Press 'x' again to reset.
    • Press 'y' to mirror-reverse the Y axis. Press 'y' again to reset.
    • (In teleprompter systems, the tablet/phone's display is normally mirror-reversed from the viewer's perspective and, depending on the tablet's orientation, either the X or Y display axis will need to be reversed to be readable.)
    • Press 'w' (wide) to switch to full-screen mode. Press 'w' again to reset.
    • Press 'r' to reset to the default values — a dialog will ask for confirmation.
    • Press 'z' (zero) to clear the user text area. A dialog will ask for confirmation.
    • Press the left arrow to decrease, and the right arrow to increase, the font size.
    • Press the up arrow to increase, and the down arrow to decrease, the scroll rate.
    • Press '{' to decrease and '}' to increase the left/right margins.
    • Press '[' to decrease and ']' to increase the display's top margin.
    • Remember: when you exit the tablet/phone browser, your script text and all user settings are locally preserved for your next session.
  • Notes

    • Because of the need for a Bluetooth keyboard to control the display scroll rate, the on-camera person must normally be framed tightly so his/her hands don't show. An alternative is to have an assistant control the teleprompter display, or use the supported game controller (see game controller section).
    • Newer Android versions allow removal of the navigation bar at the bottom of the display, this allows more space for text and removes a distraction. Here is the navigation bar option dialog (Android 9):

    • To increase display area, select "Full Screen Gestures". This mode requires an upward gesture for each of the three functions provided by the navigation bar (shown at the bottom center of the above image).
Local-network Instructions

This teleprompter display application can be downloaded and run locally rather than from this web-based server. This arrangement has the advantage that the script content can be defined by simply changing the contents of a file on a locally installed instance of the teleprompter display, and the tablet display is automatically updated with no requirement to load and move content on the tablet itself.

Using this option requres an intermediate technical skill level.

This feature is possible because the Python programming language includes a very simple one-line Web server invocation. Once activated, the server provides local-network access to the teleprompter dislay and a user-defined script file.

Here are step-by-step instructions for both Windows and Linux:

  • On Windows, install Python 3.+. Here is an example download page. Select, download and install a recent version. (Linux already has this language installed.)
  • Download this Zip archive containing the teleprompter display files.
  • Create a directory with any location and name you want and unpack the Zip archive within that directory.
  • Let's say you chose the directory name "teleprompter". After the unpacking, the directory should have this content:
      ├── content.txt
      ├── index.html
      ├── resources
      │   ├── styles.css
      │   └── TP.js
      ├── teleprompter.bat
      └── teleprompter.sh
  • Replace the file "content.txt" with your desired script text using the same file name (overwrite the original).
  • Start the Web server:
    • On Windows, click teleprompter.bat.
    • On Linux, click teleprompter.sh.
  • If the Web server start fails, make sure you have installed a recent-version Python interpreter, see above.
  • The above action will open a window, start the Web server and make the teleprompter display available on your local network at (hostname or IP) and port 8080.
  • To access the local server from the display tablet/phone, open a browser and enter:
    http://(hostname or IP):8080
  • Apply the same use instructions provided in the earlier Web-based section of this article.
  • When the recording session ends, be sure to stop the Web server by pressing Ctrl+C in the server window.
Game Controller Support

Recent versions of this application support a small game controller which the on-camera person can easily hide while controlling the scroll properties and rate.

Because each game controller is different and to avoid trying to support many different controllers each with different keyboard-mode mappings, the popular, widely available 8BitDo Zero 2 was selected for support. Here is an image of the supported game controller:

  • The left joystick pad controls the orientation of the text (upright-inverted and left-right reversed).
  • The right top button starts/stops the text display scroll in the normal direction.
  • The left top button starts/stops scrolling but in the reverse direction.
  • The controller Start button scrolls in the nornal direction (the same function as the right top button).
  • The Select Button returns to the program menu.
  • The X/Y/A/B buttons control font size (X/B) and scroll rate (Y/A).

Note: For use with this teleprompter application, be sure to start the game controller in keyboard mode (see the controller's documentation).

A full-function Bluetooth keyboard is still needed for the initial setup (script content, display margins, full-screen mode and other details), but when using the teleprompter on-camera, the tiny controller pictured above can be used to interactively control the other display functions, font size and scroll rate, and interactively pause the text display, while concealed by the on-camera operator.


This application is © Copyright 2020, P. Lutus and is released under the GPL.

I hope you find this application useful.

To report bugs or suggest improvements, please leave a message for the author — be sure to mention the name of the application (I have many online).

Version History
  • 2020.10.21 Version 2. Added a file dialog to simplify script loading. Fixed some small bugs, optimized the JavaScript code.
  • 2020.03.17 Version 1. Initial Public Release.

Home | Media |     Share This Page