A semi-properly-not-really tool that checks the integrity of the ARG.
This repository runs scripts everyday at 00:00 GMT+00:00 to do the following:
- Check the integrity of the YouTube videos
- Check the integrity of metadata (e.g. number of video uploads, number of soundcloud tracks, etc)
It makes use of GitHub Actions cache to store the "known" states. The
output of this repository is a RSS feed, which is pushed to this very
same repository on the feed
branch. Here
is a handy link; add it to your RSS reader.
(If you want the "live" JSON, use this link)
As part of monitoring, a intro sequence detection has been
implemented. This requires priming; to do so, navigate to feed-generator/src/sources/twitch-source
.
It involves the following steps:
- Create a bunch of reference squares using
frameviewer.py
(this is a little slow). (Parameters: input video, and output directory, eitherneuro
orevil
). - Analyze the SSIM mean and confidence interval between many videos
using
analyze.py
. (Parameters: source directory, eitherneuro
orevil
, detection square, eitherdetectors/neuro_detector.png
ordetectors/evil_detector.png
. Modify the script'sYOUTUBE_VIDEOS
list to check it against multiple videos. - Rename the output (
result.npz
) to eitherneuro.npz
orevil.npz
. This is the thresholds file. - Run
scrutinize.py
to check the threshold against a particular video.
If the above steps are successful, the neuro/
, evil/
directories,
and neruo.npz
, evil.npz
files can be committed to be used as
threshold values for the upcoming stream.
There is also a Twitch Stream trigger, which relies on:
- A valid Twitch Client ID and Secret
- A valid GitHub Personal Access Token
- A valid callback URL (either
ngrok
or equivalent)
Run the file hook_listener.py
to create the first skeleton for a
config file, which will be secrets.ini
.
Audio monitoring is achieved with @owobred's pleep program.
The repository is split into two parts: feed-generator
and web
.
The Feed Generator is written in Python.
cd feed-generator/
pip install -e . // or poetry install
If you hate red squiggly lines, run this as well:
mypy --install-types
The Web interface is written both in JavaScript and Rust (because I wanted to).
Install pre-requisites:
cd web/
npm install -g wasm-pack
cd www/
npm install
cd -
Build the project:
wasm-pack build
To serve the development HTTP server, try:
cd www/
npm start