TStream - Streaming from terminal
How to start streaming
Please refer to this link
Upcoming features
- One command to stream terminal session to web => just like tty-share
- In room Chat
- Voice chat
- Stream playback
- User management system
Please refer to this link
Thanks for this, it's pretty cool concept. ~~It would be cool if we could set a password to restrict the stream to just selected users. Is that on the to-do?~~ [Edit] I just saw it's planned, sorry.
Any plans on adding build instructions? I'm not a big fan of downloading precompiled binaries, which also makes it more difficult to upgrade than just git pull
and build. It would also allow using tstream
on ARM devices, which are now very widespread.
Not related, but I may as well mention it just in case: while the stream worked flawlessly when viewed on a Debian machine in Firefox and Chromium, glitches appeared on my Solus machine from Firefox (Chromium not tested) with part or all of the text being rendered as square characters, mostly $PS1
, but not only. In Nyxt browser, the web page only shows up briefly before it turns 100% white with nothing displayed. Both issues are probably not related to tstream
itself and may be just local issues but never know, maybe tstream
uses something that is not properly supported in all configurations.
What is tserver
used for? Is that for hosting your own instance of the website?
In the previous version, any single change on the streamer's terminal is sent to the viewer. There are some problems with this approach:
But this prevents users from watching the stream in super near real-time.
But I think 3 seconds lag is fine, it's how youtube and twitch works anw.
All tstream client has to upgrade to v1.2.0 to be able to stream
/unmute
and /mute
/unmute
and /mute
tstream -chat
. It'll auto-detect streaming session to open chat/name
command so viewers can change their nameTSTREAM_SESSION
env~/.tstream.conf
. Currently store: secret, and usernameFirst I started tserver
$ ./tserver
TStream server v1.3.2
Serving at: localhost:3000
When another terminal is opened and TStream is launched with the same option as an example, streaming starts with https://tstream.club/
$ ./tstream -server http://localhost:3000
TStream v1.3.2
โ Username: โatoken
โ Stream title: hogeโ
Press Enter to continue!
๐ฅ Streaming at: https://tstream.club/matoken
If you change the server fromhttp://localhost:3000
to http://localhost:3000/
, it has become an error
$ ./tstream -server http://localhost:3000/
TStream v1.3.2
โ Username: โatoken
Stream title: hoge
Press Enter to continue!
Failed to connect to server
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x6575a2]
goroutine 1 [running]:
golang.org/x/term.restore(0x0, 0x0, 0x0, 0x1c)
/go/pkg/mod/golang.org/x/[email protected]/term_unix.go:57 +0x22
golang.org/x/term.Restore(...)
/go/pkg/mod/golang.org/x/[email protected]/term.go:43
golang.org/x/crypto/ssh/terminal.Restore(...)
/go/pkg/mod/golang.org/x/[email protected]/ssh/terminal/terminal.go:64
github.com/qnkhuat/tstream/pkg/ptyMaster.(*PtyMaster).Restore(...)
/go/src/github.com/qnkhuat/tstream/tstream/pkg/ptyMaster/ptyMaster.go:90
github.com/qnkhuat/tstream/pkg/streamer.(*Streamer).Stop(0xc0000c5220, 0xc00002a4e0, 0x1b)
/go/src/github.com/qnkhuat/tstream/tstream/pkg/streamer/streamer.go:272 +0x10f
github.com/qnkhuat/tstream/pkg/streamer.(*Streamer).Start(0xc0000c5220, 0x1b, 0xba69d9)
/go/src/github.com/qnkhuat/tstream/tstream/pkg/streamer/streamer.go:90 +0x3f8
main.main()
/go/src/github.com/qnkhuat/tstream/tstream/cmd/tstream.go:165 +0xb25
Debian sid amd64 environment tserver_1.3.2_linux_x86_64.tar.gz
And TStream_1.3.2_linux_x86_64.tar.gz
was used.
0c472b3 Merge pull request #54 from qnkhuat/move-to-xyz 337698b add an overlay to terminal in room to prevent input mode when touch on terminal cf9238a moving from tstream.club to tstream.xyz
Source code(tar.gz)Added private session with tstream -private
PR: #52
Source code(tar.gz)This is a patch for the last version to fix a bug relating to terminal resizing.
In the last version because we sent data by block, but those data don't contain winsize messages => there will be a mismatch in timing.
In this version we include those winsize messages and also saving a cached winsize message on the server.
Source code(tar.gz)In the previous version, any single change on the streamer's terminal is sent to the viewer. There are some problems with this approach:
But this prevents users from watching the stream in super near real-time.
But I think 3 seconds lag is fine, it's how youtube and twitch works anw.
2f4c2bf client now read from blcok of data and schedule message according to offset 794dddb fix bug timing in message offset time 8dfa944 home page auto refresh every 15 seconds b03f53d increase streampreview load time 38477bb smaller chat text on mobile e780eb5 terminal are now exchanging block of message
Source code(tar.gz)All tstream client has to upgrade to v1.2.0 to be able to stream
/unmute
and /mute
8c95aa6 Add CGO build de5198a Add noti when failed to start voice service instead of turn off chat 2d05f25 Add peer connection to chat 62e2691 Add toggle voicce server 0c408d6 add chat response to client ping 3824649 add client activity check 637fe91 add search for UI and improve responsiveness in room 18e2641 added mute button and testsed all feature. seems to work well 0397674 all messages going through websocket now are in JSON format. our life are much easier now ef0c013 fix bug failed to adjust volume on viewer side 489430c fix bug failed to start chat rightat first session 5b121a2 got an ugly version of sfu that's runnign though c5fb68e hot fix sfu sync peers and add document for tstream chat 8d4f125 stream audio using ffmpeg + rtp abcca67 useable voice streaming. client can change volume level and reconnection with audio whever streamer turn audio on. Need a bit fine tune to make it totatlly smooth f72a065 we have our own mediadevices build for darwin arm64 now
Source code(tar.gz)tstream -chat
. It'll auto-detect streaming session to open chat/name
command so viewers can change their named017818 Add route for streamer chat a491c21 Increase version and add how to use TUI Chat fb96ade add change name commnad for chat eccc230 add config command for chat TUI 00ee692 base layout for chat f4ee862 fix chat msg flow 25614bc server add mechanism to verify websocket connection from streamer
Source code(tar.gz)TSTREAM_SESSION
env~/.tstream.conf
. Currently store: secret, and usernameFeatures:
cric Get cricket score right in your terminal. How to use?! Make sure you have Node.js installed on your machine and just type the following command w
Ticker Terminal stock watcher and stock position tracker Features Live stock price quotes Track value of your stock positions Support for multiple cos
pi-fetch get a summary of your pi-hole stats from your terminal _ ___ _ _ ___|_|___| _|___| |_ ___| |_ | . | |___| _| -_| _
youtube-live-chat-downloader Fetches Youtube live chat messages with no authentication required. How does it work? The request for fetching live chat
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.
livegollection-example-app livegollection-example-app is a simple web-chat app t
Stonks is a terminal based stock visualizer and tracker. Installation Requirements: golang >= 1.13 Manual Clone the repo Run make && make install Pack
vim-ifood Vocรช ta programando e de repente bateu aquela fome? Sem problemas, peรงa seu Ifood sem sair do seu editor de texto favorito โค๏ธ Are you progra
Gomerge is a tool to quickly enable you to bulk merge Github pull requests from your terminal. The intention of this tool is to simplfy, and eventually automate the merging of github pull requests. This tool should be able to run on most systems.
MeowTube YouTube client on your terminal Table of Contents About Getting Started Usage Contributing About MeowTube is a CLI (Command Line Interface) t
ctree ?? A Christmas tree right from your terminal! ?? Demo โ No Refresh Don't want the tree to refresh every 2 seconds? Easy! Just add the --no-refre
What Anime CLI โ ?? > This application is basically a ?? wrapper around trace.moe PREVIEW Usage ?? Get Anime By Image File ?? what-anime file anime.jp
___ _____ ____ / _ \/ _/ |/_/ /____ ______ _ Made with love by Eliuk Blau / ___// /_> </ __/ -_) __/ ' \ https://github.com/eliukblau/pix
WTF (aka 'wtfutil') is the personal information dashboard for your terminal, providing at-a-glance access to your very important but infrequently-need
termenv lets you safely use advanced styling options on the terminal. It gathers information about the terminal environment in terms of its ANSI & col
gifwrap GIFs in your terminal. Install Download the latest binary or install with Go: go install github.com/liamg/gifwrap/cmd/gifwrap@latest Usage Usa
GoTTY - Share your terminal as a web application GoTTY is a simple command line tool that turns your CLI tools into web applications. Installation Dow
Typer Typing test in your terminal Installation go get github.com/maaslalani/typer/cmd/typer Usage To begin a typing test simply type typer. This wil
?? ?? ??๏ธ octotui - GitHub stats in terminal Inspired by metrics & github-profile-summary-cards & github-tui ?? Data - irevenko/octostats TUI - termui