A twitch focused command line tool for producing, archiving and managing live stream content. Built for Linux.

twinx

  ████████╗██╗    ██╗██╗███╗   ██╗██╗  ██╗
  ╚══██╔══╝██║    ██║██║████╗  ██║╚██╗██╔╝
     ██║   ██║ █╗ ██║██║██╔██╗ ██║ ╚███╔╝
     ██║   ██║███╗██║██║██║╚██╗██║ ██╔██╗
     ██║   ╚███╔███╔╝██║██║ ╚████║██╔╝ ██╗
     ╚═╝    ╚══╝╚══╝ ╚═╝╚═╝  ╚═══╝╚═╝  ╚═╝

twinx is a live-streaming command line tool for Linux. It connects streaming services (like Twitch, OBS and YouTube) together via a common title and description.

Overview

Use twinx to manage your streams. This should be the first and last tool you use while live-streaming. This will kick off a persistent standalone linux process that runs as a temporary daemon for the duration of the stream. The daemon can then be interfaced with using the twinx command line tool. You can add integrations and functionality to your stream after it has been started.

Example

Use twinx to start a new stream on a Linux filesystem. This will register your title and description for your new stream, and start the background process. The title and description will be used as we work with various backends.

$ # twinx stream start  
   
$ twinx stream start \
    "How to hack the planet" \
    "This is a live stream about how to hack the kernel to burn down capitalism"

Start an RTMP server. If no host:port is defined, twinx will select a port and listen on localhost:1935.

$ twinx rtmp start <optional host:port>
$ twinx rtmp start localhost:1719

Send the local stream to a remote backend such as Twitch or YouTube Live via the proxy command. You may proxy to multiple backends 🙂 at the same time.

# Example Twitch
$ twinx rtmp proxy rtmp://jfk.contribute.live-video.net/app/{stream_key}

# Example YouTube
$ twinx rtmp proxy rtmp://a.rtmp.youtube.com/live2/{stream_key}

Configuration

Twitch Callback URL Port: 1717

Environmental Variables

# OBS
export TWINX_OBS_PORT="1718"
export TWINX_OBS_PASSWORD=""
export TWINX_OBS_HOST="localhost"

# YouTube
export TWINX_YOUTUBE_API_KEY=""

Permissions

twinx will manage RTMP servers, unix sockets, and gRPC servers and clients for you. twinx requires root privileges to do this.

FAQ

This tool is a reflection of being asked the following questions

What are you working on today? Where is that video you did on What is this stream even about?

Installing

Build the binary.

Install the binary.

./configure
make
sudo make install

Arch Linux dependencies

Note: We use nginx-rtmp instead of the module based package combinations.

protoc-gen-go protoc-gen-go-grpc
nginx-rtmp

RTMP Protocol Reference

Owner
Kris Nóva
principal engineer @twilio ceo/founder @privilegeescalation
Kris Nóva
Similar Resources

An open-source GitLab command line tool bringing GitLab's cool features to your command line

An open-source GitLab command line tool bringing GitLab's cool features to your command line

GLab is an open source GitLab CLI tool bringing GitLab to your terminal next to where you are already working with git and your code without switching

Dec 30, 2022

A command line tool to prompt for a value to be included in another command line.

readval is a command line tool which is designed for one specific purpose—to prompt for a value to be included in another command line. readval prints

Dec 22, 2021

Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux.

Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux.

Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux. Features Change colors whole UI Inject CSS for advanced

Jan 2, 2023

A command-line to create a pull request to review the entire content of a Github repository.

Pull Request Me Pull Request Me (PRMe) creates a pull request for the entire content of a Github repository. This is useful to solicit review comments

Nov 2, 2021

A client for managing authzed or any API-compatible system from your command line.

zed A client for managing authzed or any API-compatible system from your command line. Installation zed is currently packaged by as a head-only Homebr

Dec 31, 2022

A tool to enumerate all the command-line arguments used to start a Linux process written in Go.

A tool to enumerate all the command-line arguments used to start a Linux process written in Go.

ranwith A tool to enumerate all the command-line arguments used to start a Linux process written in Go. ranwith uses the Linux /proc directory to obta

Jun 30, 2022

Tool for containerized command line environments on Linux

Tool for containerized command line environments on Linux

Tool for containerized command line environments on Linux

Dec 31, 2022

Procmon is a Linux reimagining of the classic Procmon tool from the Sysinternals suite of tools for Windows. Procmon provides a convenient and efficient way for Linux developers to trace the syscall activity on the system.

Procmon is a Linux reimagining of the classic Procmon tool from the Sysinternals suite of tools for Windows. Procmon provides a convenient and efficient way for Linux developers to trace the syscall activity on the system.

Process Monitor for Linux (Preview) Process Monitor (Procmon) is a Linux reimagining of the classic Procmon tool from the Sysinternals suite of tools

Dec 29, 2022

Connect to a Twitch channel's chat from your terminal

CLI tool to connect to Twitch chat

Dec 20, 2022
Comments
  • RTMP: Log line to report health with smart timeout

    RTMP: Log line to report health with smart timeout

    As we are streaming, we should be able to report the health of the RTMP stream in the logs

    this should report in dynamic time intervals that are somehow related to the length of the stream

    I am to burnt out to tell you what the algebra is right now

Related tags
A command line tool that builds and (re)starts your web application everytime you save a Go or template fileA command line tool that builds and (re)starts your web application everytime you save a Go or template file

# Fresh Fresh is a command line tool that builds and (re)starts your web application everytime you save a Go or template file. If the web framework yo

Nov 22, 2021
🚀 Get Youtube Live stream chat feed without any authentication!

youtube-live-chat-downloader Fetches Youtube live chat messages with no authentication required. How does it work? The request for fetching live chat

Oct 17, 2022
Emlparsingtool - A command line tool that extracts attachments and content directly

A command line tool that extracts attachments and content directly from emL file format messages

Sep 6, 2022
textnote is a command line tool for quickly creating and managing daily plain text notes.

textnote is a command line tool for quickly creating and managing daily plain text notes. It is designed for ease of use to encourage the practice of daily, organized note taking. textnote intentionally facilitates only the management (creation, opening, organizing, and consolidated archiving) of notes, following the philosophy that notes are best written in a text editor and not via a CLI.

Jan 2, 2023
e2d is a command-line tool for deploying and managing etcd clusters, both in the cloud or on bare-metal

e2d is a command-line tool for deploying and managing etcd clusters, both in the cloud or on bare-metal. It also includes e2db, an ORM-like abstraction for working with etcd.

Aug 23, 2022
A command line tool for simplified docker volume command built with go

dockervol A command line tool for simplified docker volume command built with go. Features: Remove anonymous volume (beta) Remove volume by matching n

Dec 18, 2021
CraftTalk Command Line Tool helps with managing CraftTalk releases on baremetal instances

ctcli - CraftTalk Command Line Tool Commands help Shows help version Shows version init Initializes specified root directory as a ctcli dir. ctcli --r

Jan 20, 2022
MyApps is a universal command line tool for managing manually installed applications.
MyApps is a universal command line tool for managing manually installed applications.

MyApps MyApps is a universal command line tool for managing manually installed applications. Disclaimer I wrote this tool over two long nights while p

Jul 15, 2022
Command Line Tool for managing Apache Kafka

kafkactl A command-line interface for interaction with Apache Kafka | Features command auto-completion for bash, zsh, fish shell including dynamic com

Dec 30, 2022
Command line XML beautifier and content extractor. Similar to jq.
Command line XML beautifier and content extractor. Similar to jq.

Command line XML beautifier and content extractor. Similar to jq.

Dec 25, 2022