Skip to content

Web app to serve Twitch streams with zero viewers

License

Notifications You must be signed in to change notification settings

oseasmoran73/Nobody.live

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nodbody.live

Architecture

A worker script (scanner.py) loops through the Twitch API's list of streams and spins until it inserts all streamers it finds matching the search criteria (default zero viewers), then it starts again. These streamers are inserted as expiring keys on the assumption that someone will view them and then they won't have zero viewers any more so should not be served for too long. If a stream still has zero viewers on a subsequent pass, the insertion into Redis will override the old expiration time and they'll stick around for a while longer.

Environment variables to be set:

Meanwhile, the Flask app in app.py serves the index and the endpoint to get a random streamer.

Getting Up and Running

  • Install and start Redis
  • Run the stream fetcher (e.g. CLIENT_ID=xxxxxx CLIENT_SECRET=xxxxxx scanner.py). This will need to run continuously.
  • Run the flask app (flask run)

This is obviously not production ready; you'll need to make sure all services are running as daemons (some config files are included in etc) and that your flask app is running safely (e.g. behind gunicorn/nginx/pick your poison).

Dependencies

Update direct dependencies in requirements.in; use pip-compile to compile them down to requirements.txt if you update them.

About

Web app to serve Twitch streams with zero viewers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 51.0%
  • Python 27.8%
  • JavaScript 11.8%
  • CSS 9.4%