00:00:00 45151
Open Streaming Platform Version 0.9.12
| Website | openstreamingplatform.com |
| Repository | osp-group/flask-nginx-rtmp-manager |
| Wiki | open-streaming-platform.readthedocs.io |
| /r/openstreamingplatform | |
| Discord | Open Streaming Platform |
MIT License
Installation paths relative to:
/opt/osp/venv/lib/python3.10/site-packages
| Package | Version | Installed Path |
|---|---|---|
| aiohttp | 3.8.1 | |
| aiosignal | 1.3.1 | |
| alembic | 1.8.0 | |
| amqp | 5.1.1 | |
| aniso8601 | 7.0.0 | |
| async-timeout | 4.0.3 | |
| attrs | 23.1.0 | |
| Authlib | 0.14.1 | |
| Babel | 2.9.1 | |
| bidict | 0.21.4 | |
| billiard | 3.6.4.0 | |
| bleach | 3.3.0 | |
| blinker | 1.7.0 | |
| cachelib | 0.9.0 | |
| celery | 5.2.7 | |
| certifi | 2023.7.22 | |
| cffi | 1.16.0 | |
| cfgv | 3.4.0 | |
| charset-normalizer | 2.1.1 | |
| click | 8.1.3 | |
| click-didyoumean | 0.3.0 | |
| click-plugins | 1.1.1 | |
| click-repl | 0.3.0 | |
| cryptography | 41.0.5 | |
| DateTime | 5.4 | |
| Deprecated | 1.2.14 | |
| distlib | 0.3.7 | |
| dnspython | 2.4.2 | |
| email-validator | 1.1.3 | |
| filelock | 3.13.1 | |
| Flask | 2.1.2 | |
| Flask-Babel | 2.0.0 | |
| Flask-Caching | 2.0.2 | |
| Flask-Cors | 3.0.10 | |
| Flask-DebugToolbar | 0.13.1 | |
| Flask-Limiter | 1.1.0 | |
| Flask-Login | 0.6.2 | |
| Flask-Mail | 0.9.1 | |
| Flask-Markdown | 0.3 | |
| Flask-Migrate | 3.1.0 | |
| Flask-Principal | 0.4.0 | |
| flask-restx | 1.0.5 | |
| Flask-Reuploaded | 1.3.0 | |
| Flask-Script | 2.0.6 | |
| Flask-Security-Too | 5.1.0 | |
| Flask-Session | 0.4.0 | |
| Flask-SocketIO | 5.2.0 | |
| Flask-SQLAlchemy | 2.5.1 | |
| Flask-WTF | 1.0.1 | |
| frozenlist | 1.4.0 | |
| future | 0.18.3 | |
| gevent | 22.10.2 | |
| gevent-websocket | 0.10.1 | |
| gitdb2 | 2.0.5 | |
| GitPython | 2.1.11 | |
| greenlet | 2.0.2 | |
| gunicorn | 20.1.0 | |
| identify | 2.5.31 | |
| idna | 3.4 | |
| importlib-resources | 6.1.0 | |
| itsdangerous | 2.1.2 | |
| Jinja2 | 3.1.2 | |
| jsonschema | 4.19.2 | |
| jsonschema-specifications | 2023.7.1 | |
| kombu | 5.3.2 | |
| limits | 3.6.0 | |
| Mako | 1.0.13 | |
| Markdown | 3.5.1 | |
| MarkupSafe | 2.1.1 | |
| multidict | 6.0.4 | |
| nodeenv | 1.8.0 | |
| packaging | 23.2 | |
| passlib | 1.7.4 | |
| pilkit | 2.0 | |
| Pillow | 9.4.0 | |
| pip | 22.0.2 | |
| platformdirs | 3.11.0 | |
| pre-commit | 2.19.0 | |
| prompt-toolkit | 3.0.39 | |
| psutil | 5.7.0 | |
| psycopg2-binary | 2.8.5 | |
| pycparser | 2.21 | |
| PyMySQL | 0.9.3 | |
| pypng | 0.20220715.0 | |
| PyQRCode | 1.2.1 | |
| python-dateutil | 2.8.0 | |
| python-dotenv | 0.20.0 | |
| python-editor | 1.0.4 | |
| python-engineio | 4.3.1 | |
| python-socketio | 5.0.2 | |
| pytz | 2022.1 | |
| PyYAML | 6.0.1 | |
| qrcode | 7.4.2 | |
| redis | 4.3.3 | |
| referencing | 0.30.2 | |
| requests | 2.28.2 | |
| rpds-py | 0.12.0 | |
| sentry-sdk | 1.12.1 | |
| setuptools | 59.6.0 | |
| six | 1.16.0 | |
| smmap2 | 2.0.5 | |
| speaklater | 1.3 | |
| SQLAlchemy | 1.4.37 | |
| toml | 0.10.2 | |
| typing-extensions | 4.8.0 | |
| urllib3 | 1.26.18 | |
| vine | 5.1.0 | |
| virtualenv | 20.24.6 | |
| wcwidth | 0.2.9 | |
| webencodings | 0.5.1 | |
| Werkzeug | 2.1.2 | |
| wheel | 0.41.1 | |
| wrapt | 1.15.0 | |
| WTForms | 3.0.1 | |
| xmltodict | 0.13.0 | |
| yarl | 1.9.2 | |
| zope.event | 5.0 | |
| zope.interface | 6.1 |
| Resource | Value |
|---|---|
| User CPU time | 52.094 msec |
| System CPU time | 8.538 msec |
| Total CPU time | 60.632 msec |
| Elapsed time | 148.241 msec |
| Context switches | 57 voluntary, 12 involuntary |
| Key | Value |
|---|---|
| HTTP_ACCEPT | */* |
| HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate |
| HTTP_CONNECTION | close |
| HTTP_HOST | conference.hyperiontv.net:443 |
| HTTP_REFERER | https://conference.hyperiontv.net/view/9f18901d-e164-4fb9-aa9f-06f061286f24 |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| QUERY_STRING | |
| REMOTE_ADDR | 216.73.217.116 |
| REQUEST_METHOD | GET |
| SCRIPT_NAME | |
| SERVER_NAME | hyperiontv |
| SERVER_PORT | 5002 |
| SERVER_PROTOCOL | HTTP/1.0 |
| SERVER_SOFTWARE | gevent/22.10.2 gunicorn/20.1.0 |
| View Function | args | kwargs |
|---|---|---|
| blueprints.liveview.view_page | [] | loc=9f18901d-e164-4fb9-aa9f-06f061286f24 |
| Variable | Value |
|---|---|
| 'ospSession' | '9476ab6c-ea4b-4025-814e-8683805c328d' |
| 'route' | 'a55ce0afec21e9932739a9d707df9b3c' |
| Variable | Value |
|---|---|
| '_permanent' | True |
| '_fresh' | False |
| 'guestUUID' | '3e9c93d1-db8d-4a0c-99df-e277288ecb0d' |
| 'csrf_token' | '639286c97a8a0fa87469aa3391bd8735c271b766' |
| Variable | Value |
|---|
| Variable | Value |
|---|
| Key | Value |
|---|---|
| APPLICATION_ROOT | '/' |
| BABEL_DEFAULT_LOCALE | 'en' |
| BABEL_DEFAULT_TIMEZONE | 'UTC' |
| BABEL_DOMAIN | 'messages' |
| broker_url | 'redis://localhost:6379' |
| DEBUG | True |
| DEBUG_TB_ENABLED | True |
| DEBUG_TB_HOSTS | () |
| DEBUG_TB_INTERCEPT_REDIRECTS | True |
| DEBUG_TB_PANELS | ('flask_debugtoolbar.panels.versions.VersionDebugPanel', 'flask_debugtoolbar.panels.timer.TimerDebugPanel', 'flask_debugtoolbar.panels.headers.HeaderDebugPanel', 'flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel', 'flask_debugtoolbar.panels.config_vars.ConfigVarsDebugPanel', 'flask_debugtoolbar.panels.template.TemplateDebugPanel', 'flask_debugtoolbar.panels.sqlalchemy.SQLAlchemyDebugPanel', 'flask_debugtoolbar.panels.logger.LoggingPanel', 'flask_debugtoolbar.panels.route_list.RouteListDebugPanel', 'flask_debugtoolbar.panels.profiler.ProfilerDebugPanel', 'flask_debugtoolbar.panels.g.GDebugPanel') |
| ENV | 'production' |
| EXPLAIN_TEMPLATE_LOADING | False |
| JSON_AS_ASCII | True |
| JSON_SORT_KEYS | True |
| JSONIFY_MIMETYPE | 'application/json' |
| JSONIFY_PRETTYPRINT_REGULAR | False |
| MAIL_DEFAULT_SENDER | 'postmaster@norep.hyperiontv.net' |
| MAIL_PASSWORD | 'bb8d5c8e59aa6c8301d9bfaa69a979c9-16bc1610-d967312c' |
| MAIL_PORT | 587 |
| MAIL_SERVER | 'smtp.eu.mailgun.org' |
| MAIL_USE_SSL | False |
| MAIL_USE_TLS | True |
| MAIL_USERNAME | 'postmaster@norep.hyperiontv.net' |
| MAX_CONTENT_LENGTH | 4000000000 |
| MAX_COOKIE_SIZE | 4093 |
| MYSQL_DATABASE_CHARSET | 'utf8' |
| PERMANENT_SESSION_LIFETIME | datetime.timedelta(days=31) |
| PREFERRED_URL_SCHEME | 'http' |
| PRESERVE_CONTEXT_ON_EXCEPTION | None |
| PROPAGATE_EXCEPTIONS | None |
| RATELIMIT_ENABLED | True |
| RATELIMIT_HEADER_LIMIT | 'X-RateLimit-Limit' |
| RATELIMIT_HEADER_REMAINING | 'X-RateLimit-Remaining' |
| RATELIMIT_HEADER_RESET | 'X-RateLimit-Reset' |
| RATELIMIT_HEADER_RETRY_AFTER | 'Retry-After' |
| RATELIMIT_HEADERS_ENABLED | False |
| RATELIMIT_STORAGE_URL | 'redis://localhost:6379' |
| RATELIMIT_STRATEGY | 'fixed-window' |
| RATELIMIT_SWALLOW_ERRORS | False |
| RECAPTCHA_PRIVATE_KEY | '6Lcj8UYiAAAAANAs6CtWVqExApYq2IDmbThQiTV4' |
| RECAPTCHA_PUBLIC_KEY | '6Lcj8UYiAAAAACCAsOY5N7y7Vop_QnnSRQw3Aixw' |
| RESTX_INCLUDE_ALL_MODELS | False |
| RESTX_MASK_HEADER | 'X-Fields' |
| RESTX_MASK_SWAGGER | True |
| result_backend | 'redis://localhost:6379' |
| SECRET_KEY | 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' |
| SECURITY_API_ENABLED_METHODS | ['session', 'token'] |
| SECURITY_AUTO_LOGIN_AFTER_CONFIRM | True |
| SECURITY_BACKWARDS_COMPAT_AUTH_TOKEN | False |
| SECURITY_BACKWARDS_COMPAT_UNAUTHN | False |
| SECURITY_BLUEPRINT_NAME | 'security' |
| SECURITY_CHANGABLE | True |
| SECURITY_CHANGE_PASSWORD_TEMPLATE | 'security/change_password.html' |
| SECURITY_CHANGE_SALT | 'change-salt' |
| SECURITY_CHANGE_URL | '/change' |
| SECURITY_CHANGEABLE | False |
| SECURITY_CLI_ROLES_NAME | 'roles' |
| SECURITY_CLI_USERS_NAME | 'users' |
| SECURITY_CONFIRM_EMAIL_WITHIN | '5 days' |
| SECURITY_CONFIRM_ERROR_VIEW | None |
| SECURITY_CONFIRM_SALT | 'confirm-salt' |
| SECURITY_CONFIRM_URL | '/confirm' |
| SECURITY_CONFIRMABLE | True |
| SECURITY_CSRF_COOKIE | {'samesite': 'Strict', 'httponly': False, 'secure': False} |
| SECURITY_CSRF_COOKIE_NAME | None |
| SECURITY_CSRF_COOKIE_REFRESH_EACH_REQUEST | False |
| SECURITY_CSRF_HEADER | 'X-XSRF-Token' |
| SECURITY_CSRF_IGNORE_UNAUTH_ENDPOINTS | False |
| SECURITY_CSRF_PROTECT_MECHANISMS | ('basic', 'session', 'token') |
| SECURITY_DATETIME_FACTORY | <built-in method utcnow of type object at 0x55c6ec483e20> |
| SECURITY_DEFAULT_HTTP_AUTH_REALM | 'Login Required' |
| SECURITY_DEFAULT_REMEMBER_ME | False |
| SECURITY_DEPRECATED_HASHING_SCHEMES | ['hex_md5'] |
| SECURITY_DEPRECATED_PASSWORD_SCHEMES | ['auto'] |
| SECURITY_EMAIL_HTML | True |
| SECURITY_EMAIL_PLAINTEXT | True |
| SECURITY_EMAIL_SENDER | 'postmaster@norep.hyperiontv.net' |
| SECURITY_EMAIL_SUBJECT_CONFIRM | 'HyperionTV - Streaming and More - Email Confirmation Request' |
| SECURITY_EMAIL_SUBJECT_PASSWORD_CHANGE_NOTICE | 'Your password has been changed' |
| SECURITY_EMAIL_SUBJECT_PASSWORD_NOTICE | 'HyperionTV - Streaming and More - Password Reset Notification' |
| SECURITY_EMAIL_SUBJECT_PASSWORD_RESET | 'HyperionTV - Streaming and More - Password Reset Request' |
| SECURITY_EMAIL_SUBJECT_PASSWORDLESS | 'Login instructions' |
| SECURITY_EMAIL_SUBJECT_REGISTER | 'HyperionTV - Streaming and More - Welcome!' |
| SECURITY_EMAIL_SUBJECT_TWO_FACTOR | 'Two-factor Login' |
| SECURITY_EMAIL_SUBJECT_TWO_FACTOR_RESCUE | 'Two-factor Rescue' |
| SECURITY_EMAIL_VALIDATOR_ARGS | None |
| SECURITY_FLASH_MESSAGES | True |
| SECURITY_FORGOT_PASSWORD_TEMPLATE | 'security/forgot_password.html' |
| SECURITY_FRESHNESS | datetime.timedelta(days=1) |
| SECURITY_FRESHNESS_GRACE_PERIOD | datetime.timedelta(seconds=3600) |
| SECURITY_HASHING_SCHEMES | ['sha256_crypt', 'hex_md5'] |
| SECURITY_I18N_DIRNAME | '/opt/osp/venv/lib/python3.10/site-packages/flask_security/translations' |
| SECURITY_I18N_DOMAIN | 'flask_security' |
| SECURITY_JOIN_USER_ROLES | True |
| SECURITY_LOGIN_ERROR_VIEW | None |
| SECURITY_LOGIN_SALT | 'login-salt' |
| SECURITY_LOGIN_URL | '/login' |
| SECURITY_LOGIN_USER_TEMPLATE | 'security/login_user.html' |
| SECURITY_LOGIN_WITHIN | '1 days' |
| SECURITY_LOGIN_WITHOUT_CONFIRMATION | False |
| SECURITY_LOGOUT_METHODS | ['GET', 'POST'] |
| SECURITY_LOGOUT_URL | '/logout' |
| SECURITY_MSG_ALREADY_CONFIRMED | ('Your email has already been confirmed.', 'info') |
| SECURITY_MSG_ANONYMOUS_USER_REQUIRED | ('You can only access this endpoint when not logged in.', 'error') |
| SECURITY_MSG_API_ERROR | ('Input not appropriate for requested API', 'error') |
| SECURITY_MSG_CODE_HAS_BEEN_SENT | ('Code has been sent.', 'info') |
| SECURITY_MSG_CONFIRM_REGISTRATION | ('Thank you. Confirmation instructions have been sent to %(email)s.', 'success') |
| SECURITY_MSG_CONFIRMATION_EXPIRED | ('You did not confirm your email within %(within)s. New instructions to confirm your email have been sent to %(email)s.', 'error') |
| SECURITY_MSG_CONFIRMATION_REQUEST | ('Confirmation instructions have been sent to %(email)s.', 'info') |
| SECURITY_MSG_CONFIRMATION_REQUIRED | ('Email requires confirmation.', 'error') |
| SECURITY_MSG_DISABLED_ACCOUNT | ('Account Disabled', 'error') |
| SECURITY_MSG_EMAIL_ALREADY_ASSOCIATED | ('Username or Email Already Associated with an Account', 'error') |
| SECURITY_MSG_EMAIL_CONFIRMED | ('Thank you. Your email has been confirmed.', 'success') |
| SECURITY_MSG_EMAIL_NOT_PROVIDED | ('Email not provided', 'error') |
| SECURITY_MSG_FAILED_TO_SEND_CODE | ('Failed to send code. Please try again later', 'error') |
| SECURITY_MSG_FORGOT_PASSWORD | ('Forgot password?', 'info') |
| SECURITY_MSG_GENERIC_AUTHN_FAILED | ('Authentication failed - identity or password/passcode invalid', 'error') |
| SECURITY_MSG_GENERIC_RECOVERY | ('If that email address is in our system, you will receive an email describing how to reset your password.', 'info') |
| SECURITY_MSG_GENERIC_US_SIGNIN | ('If that identity is in our system, you were sent a code.', 'info') |
| SECURITY_MSG_IDENTITY_ALREADY_ASSOCIATED | ("Identity attribute '%(attr)s' with value '%(value)s' is already associated with an account.", 'error') |
| SECURITY_MSG_IDENTITY_NOT_REGISTERED | ('Identity %(id)s not registered', 'error') |
| SECURITY_MSG_INVALID_CODE | ('Invalid code', 'error') |
| SECURITY_MSG_INVALID_CONFIRMATION_TOKEN | ('Invalid confirmation token.', 'error') |
| SECURITY_MSG_INVALID_EMAIL_ADDRESS | ('Invalid Username or Password', 'error') |
| SECURITY_MSG_INVALID_LOGIN_TOKEN | ('Invalid login token.', 'error') |
| SECURITY_MSG_INVALID_PASSWORD | ('Invalid Username or Password', 'error') |
| SECURITY_MSG_INVALID_PASSWORD_CODE | ('Password or code submitted is not valid', 'error') |
| SECURITY_MSG_INVALID_RECOVERY_CODE | ('Recovery code invalid', 'error') |
| SECURITY_MSG_INVALID_REDIRECT | ('Redirections outside the domain are forbidden', 'error') |
| SECURITY_MSG_INVALID_RESET_PASSWORD_TOKEN | ('Invalid reset password token.', 'error') |
| SECURITY_MSG_LOGIN | ('Please log in to access this page.', 'info') |
| SECURITY_MSG_LOGIN_EMAIL_SENT | ('Instructions to login have been sent to %(email)s.', 'success') |
| SECURITY_MSG_LOGIN_EXPIRED | ('You did not login within %(within)s. New instructions to login have been sent to %(email)s.', 'error') |
| SECURITY_MSG_NO_RECOVERY_CODES_SETUP | ('No recovery codes generated yet', 'info') |
| SECURITY_MSG_OAUTH_HANDSHAKE_ERROR | ('An error occurred while communicating with the Oauth provider. Please try again.', 'error') |
| SECURITY_MSG_PASSWORD_BREACHED | ('Password on breached list', 'error') |
| SECURITY_MSG_PASSWORD_BREACHED_SITE_ERROR | ('Failed to contact breached passwords site', 'error') |
| SECURITY_MSG_PASSWORD_CHANGE | ('You successfully changed your password.', 'success') |
| SECURITY_MSG_PASSWORD_INVALID_LENGTH | ('Password must be at least %(length)s characters', 'error') |
| SECURITY_MSG_PASSWORD_IS_THE_SAME | ('Your new password must be different than your previous password.', 'error') |
| SECURITY_MSG_PASSWORD_MISMATCH | ('Password does not match', 'error') |
| SECURITY_MSG_PASSWORD_NOT_PROVIDED | ('Password not provided', 'error') |
| SECURITY_MSG_PASSWORD_RESET | ('You successfully reset your password and you have been logged in automatically.', 'success') |
| SECURITY_MSG_PASSWORD_RESET_EXPIRED | ('You did not reset your password within %(within)s. New instructions have been sent to %(email)s.', 'error') |
| SECURITY_MSG_PASSWORD_RESET_REQUEST | ('Instructions to reset your password have been sent to %(email)s.', 'info') |
| SECURITY_MSG_PASSWORD_TOO_SIMPLE | ('Password not complex enough', 'error') |
| SECURITY_MSG_PASSWORDLESS_LOGIN_SUCCESSFUL | ('You have successfully logged in.', 'success') |
| SECURITY_MSG_PHONE_INVALID | ('Phone number not valid e.g. missing country code', 'error') |
| SECURITY_MSG_REAUTHENTICATION_REQUIRED | ('You must re-authenticate to access this endpoint', 'error') |
| SECURITY_MSG_REAUTHENTICATION_SUCCESSFUL | ('Reauthentication successful', 'info') |
| SECURITY_MSG_REFRESH | ('Please reauthenticate to access this page.', 'info') |
| SECURITY_MSG_RETYPE_PASSWORD_MISMATCH | ('Passwords do not match', 'error') |
| SECURITY_MSG_TWO_FACTOR_CHANGE_METHOD_SUCCESSFUL | ('You successfully changed your two-factor method.', 'success') |
| SECURITY_MSG_TWO_FACTOR_DISABLED | ('You successfully disabled two factor authorization.', 'success') |
| SECURITY_MSG_TWO_FACTOR_INVALID_TOKEN | ('Invalid code', 'error') |
| SECURITY_MSG_TWO_FACTOR_LOGIN_SUCCESSFUL | ('Your code has been confirmed', 'success') |
| SECURITY_MSG_TWO_FACTOR_METHOD_NOT_AVAILABLE | ('Marked method is not valid', 'error') |
| SECURITY_MSG_TWO_FACTOR_PERMISSION_DENIED | ('You currently do not have permissions to access this page', 'error') |
| SECURITY_MSG_UNAUTHENTICATED | ('You are not authenticated. Please supply the correct credentials.', 'error') |
| SECURITY_MSG_UNAUTHORIZED | ('You do not have permission to view this resource.', 'error') |
| SECURITY_MSG_US_METHOD_NOT_AVAILABLE | ('Requested method is not valid', 'error') |
| SECURITY_MSG_US_SETUP_EXPIRED | ('Setup must be completed within %(within)s. Please start over.', 'error') |
| SECURITY_MSG_US_SETUP_SUCCESSFUL | ('Unified sign in setup successful', 'info') |
| SECURITY_MSG_US_SPECIFY_IDENTITY | ('You must specify a valid identity to sign in', 'error') |
| SECURITY_MSG_USE_CODE | ('Use this code to sign in: %(code)s.', 'info') |
| SECURITY_MSG_USER_DOES_NOT_EXIST | ('Invalid Username or Password', 'error') |
| SECURITY_MSG_USERNAME_ALREADY_ASSOCIATED | ('%(username)s is already associated with an account.', 'error') |
| SECURITY_MSG_USERNAME_DISALLOWED_CHARACTERS | ('Username can contain only letters and numbers', 'error') |
| SECURITY_MSG_USERNAME_ILLEGAL_CHARACTERS | ('Username contains illegal characters', 'error') |
| SECURITY_MSG_USERNAME_INVALID_LENGTH | ('Username must be at least %(min)d characters and less than %(max)d characters', 'error') |
| SECURITY_MSG_USERNAME_NOT_PROVIDED | ('Username not provided', 'error') |
| SECURITY_MSG_WEBAUTHN_CREDENTIAL_DELETED | ('Successfully deleted WebAuthn credential with name: %(name)s', 'info') |
| SECURITY_MSG_WEBAUTHN_CREDENTIAL_ID_INUSE | ('WebAuthn credential id already registered.', 'error') |
| SECURITY_MSG_WEBAUTHN_CREDENTIAL_WRONG_USAGE | ('Credential not registered for this use (first or secondary)', 'error') |
| SECURITY_MSG_WEBAUTHN_EXPIRED | ('WebAuthn operation must be completed within %(within)s. Please start over.', 'error') |
| SECURITY_MSG_WEBAUTHN_MISMATCH_USER_HANDLE | ("Credential user handle didn't match", 'error') |
| SECURITY_MSG_WEBAUTHN_NAME_INUSE | ('%(name)s is already associated with a credential.', 'error') |
| SECURITY_MSG_WEBAUTHN_NAME_NOT_FOUND | ('%(name)s not registered with current user.', 'error') |
| SECURITY_MSG_WEBAUTHN_NAME_REQUIRED | ('Nickname for new credential is required.', 'error') |
| SECURITY_MSG_WEBAUTHN_NO_VERIFY | ('Could not verify WebAuthn credential: %(cause)s.', 'error') |
| SECURITY_MSG_WEBAUTHN_ORPHAN_CREDENTIAL_ID | ("WebAuthn credential doesn't belong to any user.", 'error') |
| SECURITY_MSG_WEBAUTHN_REGISTER_SUCCESSFUL | ('Successfully added WebAuthn credential with name: %(name)s', 'info') |
| SECURITY_MSG_WEBAUTHN_UNKNOWN_CREDENTIAL_ID | ('Unregistered WebAuthn credential id.', 'error') |
| SECURITY_MULTI_FACTOR_RECOVERY_CODE_TTL | None |
| SECURITY_MULTI_FACTOR_RECOVERY_CODES | False |
| SECURITY_MULTI_FACTOR_RECOVERY_CODES_KEYS | None |
| SECURITY_MULTI_FACTOR_RECOVERY_CODES_N | 5 |
| SECURITY_MULTI_FACTOR_RECOVERY_CODES_TEMPLATE | 'security/mf_recovery_codes.html' |
| SECURITY_MULTI_FACTOR_RECOVERY_CODES_URL | '/mf-recovery-codes' |
| SECURITY_MULTI_FACTOR_RECOVERY_TEMPLATE | 'security/mf_recovery.html' |
| SECURITY_MULTI_FACTOR_RECOVERY_URL | '/mf-recovery' |
| SECURITY_OAUTH_BUILTIN_PROVIDERS | ['github', 'google'] |
| SECURITY_OAUTH_ENABLE | False |
| SECURITY_OAUTH_RESPONSE_URL | '/login/oauthresponse' |
| SECURITY_OAUTH_START_URL | '/login/oauthstart' |
| SECURITY_PASSWORD_BREACHED_COUNT | 1 |
| SECURITY_PASSWORD_CHECK_BREACHED | False |
| SECURITY_PASSWORD_COMPLEXITY_CHECKER | None |
| SECURITY_PASSWORD_HASH | 'pbkdf2_sha512' |
| SECURITY_PASSWORD_HASH_OPTIONS | {} |
| SECURITY_PASSWORD_HASH_PASSLIB_OPTIONS | {'argon2__rounds': 10} |
| SECURITY_PASSWORD_LENGTH_MIN | 8 |
| SECURITY_PASSWORD_NORMALIZE_FORM | 'NFKD' |
| SECURITY_PASSWORD_REQUIRED | True |
| SECURITY_PASSWORD_SALT | 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' |
| SECURITY_PASSWORD_SCHEMES | ['bcrypt', 'argon2', 'des_crypt', 'pbkdf2_sha256', 'pbkdf2_sha512', 'sha256_crypt', 'sha512_crypt', 'plaintext'] |
| SECURITY_PASSWORD_SINGLE_HASH | {'django_des_crypt', 'django_pbkdf2_sha256', 'django_salted_md5', 'django_argon2', 'django_salted_sha1', 'plaintext', 'django_bcrypt', 'django_bcrypt_sha256', 'django_pbkdf2_sha1'} |
| SECURITY_PASSWORDLESS | False |
| SECURITY_PHONE_REGION_DEFAULT | 'US' |
| SECURITY_POST_CHANGE_VIEW | None |
| SECURITY_POST_CONFIRM_VIEW | None |
| SECURITY_POST_LOGIN_VIEW | '/' |
| SECURITY_POST_LOGOUT_VIEW | '/' |
| SECURITY_POST_REGISTER_VIEW | None |
| SECURITY_POST_RESET_VIEW | None |
| SECURITY_POST_VERIFY_VIEW | None |
| SECURITY_RECOVERABLE | True |
| SECURITY_REDIRECT_ALLOW_SUBDOMAINS | False |
| SECURITY_REDIRECT_BEHAVIOR | None |
| SECURITY_REDIRECT_HOST | None |
| SECURITY_REDIRECT_VALIDATE_MODE | None |
| SECURITY_REDIRECT_VALIDATE_RE | '^/{4,}|\\\\{3,}|[\\s\\000-\\037][/\\\\]{2,}' |
| SECURITY_REGISTER_URL | '/register' |
| SECURITY_REGISTER_USER_TEMPLATE | 'security/register_user.html' |
| SECURITY_REGISTERABLE | True |
| SECURITY_REMEMBER_SALT | 'remember-salt' |
| SECURITY_REQUIRES_CONFIRMATION_ERROR_VIEW | None |
| SECURITY_RESET_ERROR_VIEW | None |
| SECURITY_RESET_PASSWORD_TEMPLATE | 'security/reset_password.html' |
| SECURITY_RESET_PASSWORD_WITHIN | '5 days' |
| SECURITY_RESET_SALT | 'reset-salt' |
| SECURITY_RESET_URL | '/reset' |
| SECURITY_RESET_VIEW | None |
| SECURITY_RETURN_GENERIC_RESPONSES | False |
| SECURITY_SEND_CONFIRMATION_TEMPLATE | 'security/send_confirmation.html' |
| SECURITY_SEND_LOGIN_TEMPLATE | 'security/send_login.html' |
| SECURITY_SEND_PASSWORD_CHANGE_EMAIL | True |
| SECURITY_SEND_PASSWORD_RESET_EMAIL | True |
| SECURITY_SEND_PASSWORD_RESET_NOTICE_EMAIL | True |
| SECURITY_SEND_REGISTER_EMAIL | True |
| SECURITY_SMS_SERVICE | 'Dummy' |
| SECURITY_SMS_SERVICE_CONFIG | {'ACCOUNT_SID': None, 'AUTH_TOKEN': None, 'PHONE_NUMBER': None} |
| SECURITY_STATIC_FOLDER | 'static' |
| SECURITY_STATIC_FOLDER_URL | '/fs-static' |
| SECURITY_SUBDOMAIN | None |
| SECURITY_TOKEN_AUTHENTICATION_HEADER | 'Authentication-Token' |
| SECURITY_TOKEN_AUTHENTICATION_KEY | 'auth_token' |
| SECURITY_TOKEN_MAX_AGE | None |
| SECURITY_TOTP_ISSUER | 'HyperionTV - Streaming and More' |
| SECURITY_TOTP_SECRETS | {'1': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'} |
| SECURITY_TRACKABLE | True |
| SECURITY_TWO_FACTOR | True |
| SECURITY_TWO_FACTOR_ALWAYS_VALIDATE | False |
| SECURITY_TWO_FACTOR_AUTHENTICATOR_VALIDITY | 120 |
| SECURITY_TWO_FACTOR_ENABLED_METHODS | ['authenticator'] |
| SECURITY_TWO_FACTOR_ERROR_VIEW | '.login' |
| SECURITY_TWO_FACTOR_IMPLEMENTATIONS | {'code': 'flask_security.twofactor.CodeTfPlugin', 'webauthn': 'flask_security.webauthn.WebAuthnTfPlugin'} |
| SECURITY_TWO_FACTOR_LOGIN_VALIDITY | '7 days' |
| SECURITY_TWO_FACTOR_MAIL_VALIDITY | 300 |
| SECURITY_TWO_FACTOR_POST_SETUP_VIEW | '.two_factor_setup' |
| SECURITY_TWO_FACTOR_REQUIRED | False |
| SECURITY_TWO_FACTOR_RESCUE_EMAIL | True |
| SECURITY_TWO_FACTOR_RESCUE_MAIL | 'no-reply@localhost' |
| SECURITY_TWO_FACTOR_RESCUE_URL | '/tf-rescue' |
| SECURITY_TWO_FACTOR_SECRET | None |
| SECURITY_TWO_FACTOR_SELECT_TEMPLATE | 'security/two_factor_select.html' |
| SECURITY_TWO_FACTOR_SELECT_URL | '/tf-select' |
| SECURITY_TWO_FACTOR_SETUP_TEMPLATE | 'security/two_factor_setup.html' |
| SECURITY_TWO_FACTOR_SETUP_URL | '/tf-setup' |
| SECURITY_TWO_FACTOR_SMS_SERVICE | 'Dummy' |
| SECURITY_TWO_FACTOR_SMS_SERVICE_CONFIG | {'ACCOUNT_SID': None, 'AUTH_TOKEN': None, 'PHONE_NUMBER': None} |
| SECURITY_TWO_FACTOR_SMS_VALIDITY | 120 |
| SECURITY_TWO_FACTOR_TOKEN_VALIDATION_URL | '/tf-validate' |
| SECURITY_TWO_FACTOR_URI_SERVICE_NAME | 'service_name' |
| SECURITY_TWO_FACTOR_VALIDITY_COOKIE | {'httponly': True, 'secure': False, 'samesite': 'Strict'} |
| SECURITY_TWO_FACTOR_VALIDITY_SALT | 'tf-validity-salt' |
| SECURITY_TWO_FACTOR_VERIFY_CODE_TEMPLATE | 'security/two_factor_verify_code.html' |
| SECURITY_UNAUTHORIZED_VIEW | None |
| SECURITY_UNIFIED_SIGNIN | False |
| SECURITY_URL_PREFIX | None |
| SECURITY_US_EMAIL_SUBJECT | 'Verification Code' |
| SECURITY_US_ENABLED_METHODS | ['password', 'email', 'authenticator', 'sms'] |
| SECURITY_US_MFA_REQUIRED | ['password', 'email'] |
| SECURITY_US_POST_SETUP_VIEW | '.us_setup' |
| SECURITY_US_SETUP_SALT | 'us-setup-salt' |
| SECURITY_US_SETUP_TEMPLATE | 'security/us_setup.html' |
| SECURITY_US_SETUP_URL | '/us-setup' |
| SECURITY_US_SETUP_WITHIN | '30 minutes' |
| SECURITY_US_SIGNIN_REPLACES_LOGIN | False |
| SECURITY_US_SIGNIN_SEND_CODE_URL | '/us-signin/send-code' |
| SECURITY_US_SIGNIN_TEMPLATE | 'security/us_signin.html' |
| SECURITY_US_SIGNIN_URL | '/us-signin' |
| SECURITY_US_TOKEN_VALIDITY | 120 |
| SECURITY_US_VERIFY_LINK_URL | '/us-verify-link' |
| SECURITY_US_VERIFY_SEND_CODE_URL | '/us-verify/send-code' |
| SECURITY_US_VERIFY_TEMPLATE | 'security/us_verify.html' |
| SECURITY_US_VERIFY_URL | '/us-verify' |
| SECURITY_USER_IDENTITY_ATTRIBUTES | [{'email': {'mapper': <function uia_email_mapper at 0x7f7e80fb55a0>, 'case_insensitive': True}}] |
| SECURITY_USERNAME_ENABLE | False |
| SECURITY_USERNAME_MAX_LENGTH | 32 |
| SECURITY_USERNAME_MIN_LENGTH | 4 |
| SECURITY_USERNAME_NORMALIZE_FORM | 'NFKD' |
| SECURITY_USERNAME_REQUIRED | False |
| SECURITY_VERIFY_TEMPLATE | 'security/verify.html' |
| SECURITY_VERIFY_URL | '/verify' |
| SECURITY_WAN_ALLOW_AS_FIRST_FACTOR | True |
| SECURITY_WAN_ALLOW_AS_MULTI_FACTOR | True |
| SECURITY_WAN_ALLOW_AS_VERIFY | ['first', 'secondary'] |
| SECURITY_WAN_ALLOW_USER_HINTS | True |
| SECURITY_WAN_CHALLENGE_BYTES | None |
| SECURITY_WAN_DELETE_URL | '/wan-delete' |
| SECURITY_WAN_POST_REGISTER_VIEW | '.wan_register' |
| SECURITY_WAN_REGISTER_TEMPLATE | 'security/wan_register.html' |
| SECURITY_WAN_REGISTER_TIMEOUT | 60000 |
| SECURITY_WAN_REGISTER_URL | '/wan-register' |
| SECURITY_WAN_REGISTER_WITHIN | '30 minutes' |
| SECURITY_WAN_RP_NAME | 'My Flask App' |
| SECURITY_WAN_SALT | 'wan-salt' |
| SECURITY_WAN_SIGNIN_TEMPLATE | 'security/wan_signin.html' |
| SECURITY_WAN_SIGNIN_TIMEOUT | 60000 |
| SECURITY_WAN_SIGNIN_URL | '/wan-signin' |
| SECURITY_WAN_SIGNIN_WITHIN | '1 minutes' |
| SECURITY_WAN_VERIFY_TEMPLATE | 'security/wan_verify.html' |
| SECURITY_WAN_VERIFY_URL | '/wan-verify' |
| SECURITY_WEBAUTHN | False |
| SECURITY_ZXCVBN_MINIMUM_SCORE | 3 |
| SEND_FILE_MAX_AGE_DEFAULT | None |
| SERVER_NAME | None |
| SESSION_COOKIE_DOMAIN | False |
| SESSION_COOKIE_HTTPONLY | True |
| SESSION_COOKIE_NAME | 'ospSession' |
| SESSION_COOKIE_PATH | None |
| SESSION_COOKIE_SAMESITE | 'Lax' |
| SESSION_COOKIE_SECURE | True |
| SESSION_REDIS | Redis<ConnectionPool<Connection<host=localhost,port=6379,db=0>>> |
| SESSION_REFRESH_EACH_REQUEST | True |
| SESSION_TYPE | 'redis' |
| SQLALCHEMY_BINDS | None |
| SQLALCHEMY_COMMIT_ON_TEARDOWN | False |
| SQLALCHEMY_DATABASE_URI | 'mysql+pymysql://hyperiontv:Darkpaw32@localhost/osp?charset=utf8mb4' |
| SQLALCHEMY_ECHO | False |
| SQLALCHEMY_ENGINE_OPTIONS | {'encoding': 'utf8', 'pool_use_lifo': 'False', 'pool_size': 10, 'pool_pre_ping': True} |
| SQLALCHEMY_MAX_OVERFLOW | -1 |
| SQLALCHEMY_NATIVE_UNICODE | None |
| SQLALCHEMY_POOL_RECYCLE | 300 |
| SQLALCHEMY_POOL_SIZE | None |
| SQLALCHEMY_POOL_TIMEOUT | 600 |
| SQLALCHEMY_RECORD_QUERIES | None |
| SQLALCHEMY_TRACK_MODIFICATIONS | False |
| TEMPLATES_AUTO_RELOAD | None |
| TESTING | False |
| TRAP_BAD_REQUEST_ERRORS | None |
| TRAP_HTTP_EXCEPTIONS | False |
| UPLOADED_DEFAULT_DEST | '/var/www/images' |
| UPLOADED_PHOTOS_DEST | '/var/www/images' |
| UPLOADED_STICKERS_DEST | '/var/www/images' |
| USE_X_SENDFILE | False |
| VIDEO_UPLOAD_EXTENSIONS | ['PNG', 'MP4'] |
| VIDEO_UPLOAD_TEMPFOLDER | '/var/www/videos/temp' |
| WEB_ROOT | '/var/www/' |
| Variable | Value |
|---|---|
| allowRegistration | True |
| bannedMessages | [] |
| bannedWords | ['livelinkbio', 'kodicable', 'heil', 'wondergamer.net'] |
| channel | (190, 107, 'Lilly/Ghost Rule', '9f18901d-e164-4fb9-aa9f-06f061286f24', 4, 4515, 1, False, False, 'Standard', '#FFFFFF', 'slide-in-left', '3d46c8f1-f036-4a66-91c3-2d8a5a6b620d.png', None, None, 'I do MMD stuff.', False, False, False, True, '', True, None, False, '9b25f89b-a3a8-466e-b6d0-b0b1cc7a84c4', '8d759302133a912e1eae5a9a1b0d469af64655f63dc9e9ea7981ee9facacd102', 'messenger', 2, True, True, 0, 0, False, False) |
| channelPanelList | [] |
| chatDomain | 'hyperiontv.net' |
| clipsList | [] |
| current_user | <flask_security.core.AnonymousUser object at 0x7f7e7783af50> |
| g | <flask.g of 'app'> |
| messageCount | 0 |
| notifications | [] |
| ownedChannels | [] |
| recaptchaEnabled | True |
| request | <AnyJsonRequest 'https://conference.hyperiontv.net/view/9f18901d-e164-4fb9-aa9f-06f061286f24/' [GET]> |
| restartRequired | False |
| rtmpURI | 'rtmp://hyperiontv.net:1935/live/9f18901d-e164-4fb9-aa9f-06f061286f24' |
| security | <flask_security.core.Security object at 0x7f7e7c75ebc0> |
| session | <RedisSession {'_permanent': True, '_fresh': False, 'guestUUID': '3e9c93d1-db8d-4a0c-99df-e277288ecb0d', 'csrf_token': '639286c97a8a0fa87469aa3391bd8735c271b766'}> |
| static_pages | [<id 2>, <id 3>, <id 5>, <id 8>, <id 10>, <id 12>, <id 13>, <id 15>, <id 16>, <id 17>, <id 18>, <id 19>] |
| stickerList | [{'name': 'thinking', 'file': '/static/img/stickers/thinking.png', 'category': 'builtin'}, {'name': 'fire', 'file': '/static/img/stickers/fire.png', 'category': 'builtin'}, {'name': 'surprised', 'file': '/static/img/stickers/surprised.png', 'category': 'builtin'}, {'name': 'frown', 'file': '/static/img/stickers/frown.png', 'category': 'builtin'}, {'name': 'smiling', 'file': '/static/img/stickers/smiling.png', 'category': 'builtin'}, {'name': 'laugh', 'file': '/static/img/stickers/laugh.png', 'category': 'builtin'}, {'name': 'heart', 'file': '/static/img/stickers/heart.png', 'category': 'builtin'}, {'name': 'star', 'file': '/static/img/stickers/star.png', 'category': 'builtin'}, {'name': 'thumbsdown', 'file': '/static/img/stickers/thumbsdown.png', 'category': 'builtin'}, {'name': 'cry', 'file': '/static/img/stickers/cry.png', 'category': 'builtin'}, {'name': 'checkmark', 'file': '/static/img/stickers/checkmark.png', 'category': 'builtin'}, {'name': 'angry', 'file': '/static/img/stickers/angry.png', 'category': 'builtin'}, {'name': 'thumbsup', 'file': '/static/img/stickers/thumbsup.png', 'category': 'builtin'}, {'name': 'pups', 'file': '/images/stickers/pups.png', 'category': 'global'}, {'name': 'wut', 'file': '/images/stickers/wut.png', 'category': 'global'}, {'name': 'wolflab', 'file': '/images/stickers/wolflab.png', 'category': 'global'}] |
| stickerSelectorList | {'builtin': [{'name': 'thinking', 'file': '/static/img/stickers/thinking.png', 'category': 'builtin'}, {'name': 'fire', 'file': '/static/img/stickers/fire.png', 'category': 'builtin'}, {'name': 'surprised', 'file': '/static/img/stickers/surprised.png', 'category': 'builtin'}, {'name': 'frown', 'file': '/static/img/stickers/frown.png', 'category': 'builtin'}, {'name': 'smiling', 'file': '/static/img/stickers/smiling.png', 'category': 'builtin'}, {'name': 'laugh', 'file': '/static/img/stickers/laugh.png', 'category': 'builtin'}, {'name': 'heart', 'file': '/static/img/stickers/heart.png', 'category': 'builtin'}, {'name': 'star', 'file': '/static/img/stickers/star.png', 'category': 'builtin'}, {'name': 'thumbsdown', 'file': '/static/img/stickers/thumbsdown.png', 'category': 'builtin'}, {'name': 'cry', 'file': '/static/img/stickers/cry.png', 'category': 'builtin'}, {'name': 'checkmark', 'file': '/static/img/stickers/checkmark.png', 'category': 'builtin'}, {'name': 'angry', 'file': '/static/img/stickers/angry.png', 'category': 'builtin'}, {'name': 'thumbsup', 'file': '/static/img/stickers/thumbsup.png', 'category': 'builtin'}], 'global': [{'name': 'pups', 'file': '/images/stickers/pups.png', 'category': 'global'}, {'name': 'wut', 'file': '/images/stickers/wut.png', 'category': 'global'}, {'name': 'wolflab', 'file': '/images/stickers/wolflab.png', 'category': 'global'}], 'channel': []} |
| stream | None |
| streamURL | '/live/9f18901d-e164-4fb9-aa9f-06f061286f24/index.m3u8' |
| subState | False |
| sysSettings | <id 1> |
| SystemOAuthProviders | [<id 7>] |
| themeLayout | 'themes/Defaultv3/layout.html' |
| themeMacrosAdminPage | 'themes/Defaultv3/macros/admin_page.html' |
| themeMacrosCards | 'themes/Defaultv3/macros/cards.html' |
| themeMacrosCoreUI | 'themes/Defaultv3/macros/core_ui.html' |
| themeMacrosModals | 'themes/Defaultv3/macros/modals.html' |
| themeMacrosPanels | 'themes/Defaultv3/macros/panels.html' |
| themeMacrosSettings | 'themes/Defaultv3/macros/settings.html' |
| topics | [<id 1>, <id 2>, <id 3>, <id 4>, <id 5>, <id 6>, <id 7>, <id 8>, <id 9>, <id 10>, <id 11>, <id 12>, <id 13>, <id 14>, <id 15>] |
| uploadTopics | [<id 1>, <id 2>, <id 3>, <id 4>, <id 5>, <id 6>, <id 7>, <id 8>, <id 9>, <id 10>, <id 11>, <id 12>, <id 13>, <id 14>, <id 15>] |
| url_for_security | <function url_for_security at 0x7f7e80fb49d0> |
| videoList | [(1851, '0f8b4a5c-5a1a-4575-a41e-7b7f57e8d610', datetime.datetime(2025, 5, 31, 20, 36, 6), 107, '[SynthV Pro Cover] So Alone (Kasane Teto)', 190, 'SVP and tuning by me\r\n\r\nMMD render by me\r\n\r\nOriginal song by Anna Blue\r\n\r\n--------------------------------\r\n\r\nI never saw any vocal s ... (33 characters truncated) ... ook it upon myself to make one.\r\n\r\n--------------------------------\r\n\r\nPlease do not reupload this video without prior permission. Thank you!', 4, 896, 220.187, '9f18901d-e164-4fb9-aa9f-06f061286f24/f3915969-d0ab-425a-9def-b0c300e8a75f_20250531_203606.mp4', '9f18901d-e164-4fb9-aa9f-06f061286f24/f3915969-d0ab-425a-9def-b0c300e8a75f_20250531_203606.png', '9f18901d-e164-4fb9-aa9f-06f061286f24/f3915969-d0ab-425a-9def-b0c300e8a75f_20250531_203606.gif', False, False, True, None), (1485, '44390b49-69dd-44ba-9dd1-82a39eab0f73', datetime.datetime(2025, 1, 10, 17, 27, 34), 107, '[SynthV Pro Cover] Wrong + Right (Kasane Teto)', 190, 'VSQx by Circus-P; converted to SVP and tuned by me\r\n\r\nOriginal singer: Yuezheng Ling\r\n\r\nCover vocals: Kasane Teto\r\n\r\nMMD render by me\r\n ... (107 characters truncated) ... oad: https://www.youtube.com/watch?v=4Hr9vW294VM\r\n\r\n---------------\r\n\r\nPlease do not reupload this video without prior permission. Thank you!', 4, 880, 207.552, '9f18901d-e164-4fb9-aa9f-06f061286f24/6c3872e8-e11c-4643-892e-49f0e4cf4aed_20250110_172734.mp4', '9f18901d-e164-4fb9-aa9f-06f061286f24/6c3872e8-e11c-4643-892e-49f0e4cf4aed_20250110_172734.png', '9f18901d-e164-4fb9-aa9f-06f061286f24/6c3872e8-e11c-4643-892e-49f0e4cf4aed_20250110_172734.gif', False, False, True, None), (1836, 'bf81dbb0-b3d1-4d1b-92cc-e5d28030c587', datetime.datetime(2025, 5, 27, 15, 10, 17), 107, '[SynthV Pro] The Stupid Shippers Song (FCC Song Parody)', 190, 'Featuring Mai, Gumi, and Otomachi Una\r\nSVP by me\r\nMix and lyrics by me\r\nOriginal song from Family Guy\r\nLyrics are here: https://docs.google.c ... (407 characters truncated) ... ppers.\r\nI hope you like it. :3c\r\n\r\n------------------------------\r\n\r\nPlease do not reupload this video without prior permission. Thank you!', 4, 836, 78.1781, '9f18901d-e164-4fb9-aa9f-06f061286f24/8f0378ab-607b-4848-938f-20a48d888094_20250527_151017.mp4', '9f18901d-e164-4fb9-aa9f-06f061286f24/8f0378ab-607b-4848-938f-20a48d888094_20250527_151017.png', '9f18901d-e164-4fb9-aa9f-06f061286f24/8f0378ab-607b-4848-938f-20a48d888094_20250527_151017.gif', False, False, True, None), (1469, 'cfa20343-685d-4927-9a4c-3cd1bb327a36', datetime.datetime(2024, 12, 20, 16, 5, 44), 107, '[SynthV Pro Cover REDUX] Pray To Me (Solaria)', 190, "Original song by Mizu feat. Gumi\r\n\r\nVideo and artwork by Shirotani\r\n\r\nOriginal SVP and instrumental by Mizu\r\n\r\nSolaria tuning by me\r\n\r ... (228 characters truncated) ... ough so many redos that it's not even funny.\r\n\r\n------------------------------\r\n\r\nPlease do not reupload without prior permission. Thank you!", 4, 801, 203.648, '9f18901d-e164-4fb9-aa9f-06f061286f24/2fa7607b-e212-444b-a831-d9a0d1ecd6e9_20241220_160544.mp4', '9f18901d-e164-4fb9-aa9f-06f061286f24/2fa7607b-e212-444b-a831-d9a0d1ecd6e9_20241220_160544.png', '9f18901d-e164-4fb9-aa9f-06f061286f24/2fa7607b-e212-444b-a831-d9a0d1ecd6e9_20241220_160544.gif', False, False, True, None), (1491, '7dc848bb-884c-4c99-b3a5-6587aac6db4c', datetime.datetime(2025, 1, 30, 21, 53, 55), 107, '[SynthV Pro Cover] Poka Poka Planet (Kasane Teto)', 190, "Original UST by Whinartense(89P); converted to SVP by me\r\n\r\nTuning and mixing by me\r\n\r\nOriginal song by Harumaki Gohan feat. Hatsune Miku\r\n ... (231 characters truncated) ... ediafire.com/file/eqonxr0agg5zeng/\r\n\r\n-----------------------------\r\n\r\nPlease do not reupload this video without prior permission. Thank you!", 4, 778, 249.322, '9f18901d-e164-4fb9-aa9f-06f061286f24/c7cf1b88-5d2c-43b2-bc5c-144c9065ab30_20250130_215355.mp4', '9f18901d-e164-4fb9-aa9f-06f061286f24/c7cf1b88-5d2c-43b2-bc5c-144c9065ab30_20250130_215355.png', '9f18901d-e164-4fb9-aa9f-06f061286f24/c7cf1b88-5d2c-43b2-bc5c-144c9065ab30_20250130_215355.gif', False, False, True, None), (1651, '4042dc1a-81a4-40cd-b55b-0dfe4a05cf20', datetime.datetime(2025, 4, 24, 20, 3, 50), 107, '[SynthV Pro Cover] Find Your Flame (Kasane Teto)', 190, 'SVP and tuning by me\n\nOriginal song by SEGA\n\nMMD picture render by me (will add credits for that later)\n\nBuy the SVP here (does not include the ... (215 characters truncated) ... \nSo I made a SynthV cover of it.\n\n--------------------------------------\n\nPlease do not reupload this video without prior permission. Thank you!', 4, 674, 243.648, '9f18901d-e164-4fb9-aa9f-06f061286f24/da7a59d4-4284-48a6-a74f-c5482549b2f8_20250424_200350.mp4', '9f18901d-e164-4fb9-aa9f-06f061286f24/da7a59d4-4284-48a6-a74f-c5482549b2f8_20250424_200350.png', '9f18901d-e164-4fb9-aa9f-06f061286f24/da7a59d4-4284-48a6-a74f-c5482549b2f8_20250424_200350.gif', False, False, True, None)] |
| (ms) | Action | Context | Query |
|---|---|---|---|
| 1.7049 |
SELECT EXPLAIN |
./app.py:940 (do_before_request) |
SELECT ip_list.id AS ip_list_id, ip_list.`ipAddress` AS `ip_list_ipAddress`, ip_list.reason AS ip_list_reason
FROM ip_list
WHERE ip_list.`ipAddress` = %(ipAddress_1)s
LIMIT %(param_1)s
|
| 83.6072 |
SELECT EXPLAIN |
./app.py:950 (do_before_request) |
SELECT `Guest`.id AS `Guest_id`, `Guest`.`UUID` AS `Guest_UUID`, `Guest`.last_active_at AS `Guest_last_active_at`, `Guest`.last_active_ip AS `Guest_last_active_ip`
FROM `Guest`
WHERE `Guest`.`UUID` = %(UUID_1)s
LIMIT %(param_1)s
|
| 0.5319 | ./app.py:954 (do_before_request) |
UPDATE `Guest` SET last_active_at=%(last_active_at)s WHERE `Guest`.id = %(Guest_id)s
|
|
| 1.5728 |
SELECT EXPLAIN |
<unknown> |
SELECT `Channel`.id AS `Channel_id`, `Channel`.`owningUser` AS `Channel_owningUser`, `Channel`.`channelName` AS `Channel_channelName`, `Channel`.`channelLoc` AS `Channel_channelLoc`, `Channel`.topic AS `Channel_topic`, `Channel`.views AS `Channel_views`, `Channel`.`currentViewers` AS `Channel_currentViewers`, `Channel`.record AS `Channel_record`, `Channel`.`chatEnabled` AS `Channel_chatEnabled`, `Channel`.`chatBG` AS `Channel_chatBG`, `Channel`.`chatTextColor` AS `Channel_chatTextColor`, `Channel`.`chatAnimation` AS `Channel_chatAnimation`, `Channel`.`imageLocation` AS `Channel_imageLocation`, `Channel`.`offlineImageLocation` AS `Channel_offlineImageLocation`, `Channel`.`channelBannerLocation` AS `Channel_channelBannerLocation`, `Channel`.description AS `Channel_description`, `Channel`.`allowComments` AS `Channel_allowComments`, `Channel`.protected AS `Channel_protected`, `Channel`.`channelMuted` AS `Channel_channelMuted`, `Channel`.`showChatJoinLeaveNotification` AS `Channel_showChatJoinLeaveNotification`, `Channel`.`defaultStreamName` AS `Channel_defaultStreamName`, `Channel`.`autoPublish` AS `Channel_autoPublish`, `Channel`.`vanityURL` AS `Channel_vanityURL`, `Channel`.private AS `Channel_private`, `Channel`.`streamKey` AS `Channel_streamKey`, `Channel`.`xmppToken` AS `Channel_xmppToken`, `Channel`.`chatFormat` AS `Channel_chatFormat`, `Channel`.`chatHistory` AS `Channel_chatHistory`, `Channel`.`allowGuestNickChange` AS `Channel_allowGuestNickChange`, `Channel`.`showHome` AS `Channel_showHome`, `Channel`.`maxVideoRetention` AS `Channel_maxVideoRetention`, `Channel`.`maxClipRetention` AS `Channel_maxClipRetention`, `Channel`.`hubEnabled` AS `Channel_hubEnabled`, `Channel`.`hubNSFW` AS `Channel_hubNSFW`
FROM `Channel`
WHERE `Channel`.`channelLoc` = %(channelLoc_1)s
LIMIT %(param_1)s
|
| 0.5174 |
SELECT EXPLAIN |
<unknown> |
SELECT settings.`systemTheme` AS `settings_systemTheme`, settings.`maintenanceMode` AS `settings_maintenanceMode`
FROM settings
LIMIT %(param_1)s
|
| 0.4165 | <unknown> |
SELECT stickers.id AS stickers_id, stickers.name AS stickers_name, stickers.`channelID` AS `stickers_channelID`, stickers.filename AS stickers_filename
FROM stickers
WHERE stickers.`channelID` IS NULL
|
|
| 0.7002 |
SELECT EXPLAIN |
<unknown> |
SELECT stickers.id AS stickers_id, stickers.name AS stickers_name, stickers.`channelID` AS `stickers_channelID`, stickers.filename AS stickers_filename
FROM stickers
WHERE stickers.`channelID` = %(channelID_1)s
|
| 0.4697 |
SELECT EXPLAIN |
<unknown> |
SELECT edge_streamer.id AS edge_streamer_id
FROM edge_streamer
WHERE edge_streamer.active = true
LIMIT %(param_1)s
|
| 1.0095 |
SELECT EXPLAIN |
<unknown> |
SELECT `Clips`.id AS `Clips_id`, `Clips`.uuid AS `Clips_uuid`, `Clips`.`clipDate` AS `Clips_clipDate`, `Clips`.`owningUser` AS `Clips_owningUser`, `Clips`.`channelID` AS `Clips_channelID`, `Clips`.`parentVideo` AS `Clips_parentVideo`, `Clips`.`startTime` AS `Clips_startTime`, `Clips`.`endTime` AS `Clips_endTime`, `Clips`.length AS `Clips_length`, `Clips`.views AS `Clips_views`, `Clips`.`clipName` AS `Clips_clipName`, `Clips`.`videoLocation` AS `Clips_videoLocation`, `Clips`.description AS `Clips_description`, `Clips`.topic AS `Clips_topic`, `Clips`.`thumbnailLocation` AS `Clips_thumbnailLocation`, `Clips`.`gifLocation` AS `Clips_gifLocation`, `Clips`.published AS `Clips_published`, clip_upvotes_1.id AS clip_upvotes_1_id, clip_upvotes_1.`userID` AS `clip_upvotes_1_userID`, clip_upvotes_1.`clipID` AS `clip_upvotes_1_clipID`, clip_tags_1.id AS clip_tags_1_id, clip_tags_1.name AS clip_tags_1_name, clip_tags_1.`clipID` AS `clip_tags_1_clipID`, clip_tags_1.`taggedByUser` AS `clip_tags_1_taggedByUser`
FROM `Clips` LEFT OUTER JOIN clip_upvotes AS clip_upvotes_1 ON `Clips`.id = clip_upvotes_1.`clipID` LEFT OUTER JOIN clip_tags AS clip_tags_1 ON `Clips`.id = clip_tags_1.`clipID`
WHERE `Clips`.`channelID` = %(channelID_1)s AND `Clips`.published = true
|
| 1.1539 |
SELECT EXPLAIN |
<unknown> |
SELECT `RecordedVideo`.id AS `RecordedVideo_id`, `RecordedVideo`.uuid AS `RecordedVideo_uuid`, `RecordedVideo`.`videoDate` AS `RecordedVideo_videoDate`, `RecordedVideo`.`owningUser` AS `RecordedVideo_owningUser`, `RecordedVideo`.`channelName` AS `RecordedVideo_channelName`, `RecordedVideo`.`channelID` AS `RecordedVideo_channelID`, `RecordedVideo`.description AS `RecordedVideo_description`, `RecordedVideo`.topic AS `RecordedVideo_topic`, `RecordedVideo`.views AS `RecordedVideo_views`, `RecordedVideo`.length AS `RecordedVideo_length`, `RecordedVideo`.`videoLocation` AS `RecordedVideo_videoLocation`, `RecordedVideo`.`thumbnailLocation` AS `RecordedVideo_thumbnailLocation`, `RecordedVideo`.`gifLocation` AS `RecordedVideo_gifLocation`, `RecordedVideo`.pending AS `RecordedVideo_pending`, `RecordedVideo`.`allowComments` AS `RecordedVideo_allowComments`, `RecordedVideo`.published AS `RecordedVideo_published`, `RecordedVideo`.`originalStreamID` AS `RecordedVideo_originalStreamID`
FROM `RecordedVideo`
WHERE `RecordedVideo`.`channelID` = %(channelID_1)s AND `RecordedVideo`.pending = false AND `RecordedVideo`.published = true
|
| 0.7210 |
SELECT EXPLAIN |
<unknown> |
SELECT panel_mapping.id AS panel_mapping_id, panel_mapping.`pageName` AS `panel_mapping_pageName`, panel_mapping.`panelType` AS `panel_mapping_panelType`, panel_mapping.`panelId` AS `panel_mapping_panelId`, panel_mapping.`panelOrder` AS `panel_mapping_panelOrder`, panel_mapping.`panelLocationId` AS `panel_mapping_panelLocationId`
FROM panel_mapping
WHERE panel_mapping.`pageName` = %(pageName_1)s AND panel_mapping.`panelType` = %(panelType_1)s AND panel_mapping.`panelLocationId` = %(panelLocationId_1)s
|
| 0.2999 |
SELECT EXPLAIN |
<unknown> |
SELECT settings.`systemTheme` AS `settings_systemTheme`, settings.`maintenanceMode` AS `settings_maintenanceMode`
FROM settings
LIMIT %(param_1)s
|
| 4.1125 |
SELECT EXPLAIN |
<unknown> |
SELECT anon_1.`Stream_id` AS `anon_1_Stream_id`, anon_1.`Stream_uuid` AS `anon_1_Stream_uuid`, anon_1.`Stream_startTimestamp` AS `anon_1_Stream_startTimestamp`, anon_1.`Stream_endTimeStamp` AS `anon_1_Stream_endTimeStamp`, anon_1.`Stream_linkedChannel` AS `anon_1_Stream_linkedChannel`, anon_1.`Stream_streamKey` AS `anon_1_Stream_streamKey`, anon_1.`Stream_streamName` AS `anon_1_Stream_streamName`, anon_1.`Stream_topic` AS `anon_1_Stream_topic`, anon_1.`Stream_currentViewers` AS `anon_1_Stream_currentViewers`, anon_1.`Stream_totalViewers` AS `anon_1_Stream_totalViewers`, anon_1.`Stream_active` AS `anon_1_Stream_active`, anon_1.`Stream_pending` AS `anon_1_Stream_pending`, anon_1.`Stream_complete` AS `anon_1_Stream_complete`, anon_1.`Stream_recordedVideoId` AS `anon_1_Stream_recordedVideoId`, anon_1.`Stream_rtmpServer` AS `anon_1_Stream_rtmpServer`, stream_upvotes_1.id AS stream_upvotes_1_id, stream_upvotes_1.`userID` AS `stream_upvotes_1_userID`, stream_upvotes_1.`streamID` AS `stream_upvotes_1_streamID`
FROM (SELECT `Stream`.id AS `Stream_id`, `Stream`.uuid AS `Stream_uuid`, `Stream`.`startTimestamp` AS `Stream_startTimestamp`, `Stream`.`endTimeStamp` AS `Stream_endTimeStamp`, `Stream`.`linkedChannel` AS `Stream_linkedChannel`, `Stream`.`streamKey` AS `Stream_streamKey`, `Stream`.`streamName` AS `Stream_streamName`, `Stream`.topic AS `Stream_topic`, `Stream`.`currentViewers` AS `Stream_currentViewers`, `Stream`.`totalViewers` AS `Stream_totalViewers`, `Stream`.active AS `Stream_active`, `Stream`.pending AS `Stream_pending`, `Stream`.complete AS `Stream_complete`, `Stream`.`recordedVideoId` AS `Stream_recordedVideoId`, `Stream`.`rtmpServer` AS `Stream_rtmpServer`
FROM `Stream`
WHERE `Stream`.active = true AND `Stream`.`streamKey` = %(streamKey_1)s
LIMIT %(param_1)s) AS anon_1 LEFT OUTER JOIN stream_upvotes AS stream_upvotes_1 ON anon_1.`Stream_id` = stream_upvotes_1.`streamID`
|
| 0.4437 | <unknown> |
SELECT chat_banned_words.word AS chat_banned_words_word
FROM chat_banned_words
|
|
| 0.5982 |
SELECT EXPLAIN |
<unknown> |
SELECT chat_banned_messages.`msgID` AS `chat_banned_messages_msgID`
FROM chat_banned_messages
WHERE chat_banned_messages.`channelLoc` = %(channelLoc_1)s
|
| 0.3629 |
SELECT EXPLAIN |
./app.py:870 (inject_macros) |
SELECT settings.`systemTheme` AS `settings_systemTheme`, settings.`maintenanceMode` AS `settings_maintenanceMode`
FROM settings
LIMIT %(param_1)s
|
| 0.2794 |
SELECT EXPLAIN |
./app.py:871 (inject_macros) |
SELECT settings.`systemTheme` AS `settings_systemTheme`, settings.`maintenanceMode` AS `settings_maintenanceMode`
FROM settings
LIMIT %(param_1)s
|
| 0.2656 |
SELECT EXPLAIN |
./app.py:872 (inject_macros) |
SELECT settings.`systemTheme` AS `settings_systemTheme`, settings.`maintenanceMode` AS `settings_maintenanceMode`
FROM settings
LIMIT %(param_1)s
|
| 0.2856 |
SELECT EXPLAIN |
./app.py:873 (inject_macros) |
SELECT settings.`systemTheme` AS `settings_systemTheme`, settings.`maintenanceMode` AS `settings_maintenanceMode`
FROM settings
LIMIT %(param_1)s
|
| 0.3059 |
SELECT EXPLAIN |
./app.py:874 (inject_macros) |
SELECT settings.`systemTheme` AS `settings_systemTheme`, settings.`maintenanceMode` AS `settings_maintenanceMode`
FROM settings
LIMIT %(param_1)s
|
| 0.2437 |
SELECT EXPLAIN |
./app.py:876 (inject_macros) |
SELECT settings.`systemTheme` AS `settings_systemTheme`, settings.`maintenanceMode` AS `settings_maintenanceMode`
FROM settings
LIMIT %(param_1)s
|
| 0.2584 |
SELECT EXPLAIN |
./app.py:878 (inject_macros) |
SELECT settings.`systemTheme` AS `settings_systemTheme`, settings.`maintenanceMode` AS `settings_maintenanceMode`
FROM settings
LIMIT %(param_1)s
|
| 0.7958 |
SELECT EXPLAIN |
<unknown> |
SELECT channel_tags.id AS channel_tags_id, channel_tags.name AS channel_tags_name, channel_tags.`channelID` AS `channel_tags_channelID`, channel_tags.`taggedByUser` AS `channel_tags_taggedByUser`
FROM channel_tags
WHERE channel_tags.`channelID` = %(channelID_1)s
|
| 0.7017 |
SELECT EXPLAIN |
<unknown> |
SELECT user.id AS user_id, user.uuid AS user_uuid, user.username AS user_username, user.biography AS user_biography, user.`pictureLocation` AS `user_pictureLocation`, user.`bannerLocation` AS `user_bannerLocation`
FROM user
WHERE user.id = %(id_1)s
LIMIT %(param_1)s
|
| 1.3807 |
SELECT EXPLAIN |
<unknown> |
SELECT `Channel`.id AS `Channel_id`, `Channel`.`owningUser` AS `Channel_owningUser`, `Channel`.`channelName` AS `Channel_channelName`, `Channel`.`channelLoc` AS `Channel_channelLoc`, `Channel`.topic AS `Channel_topic`, `Channel`.views AS `Channel_views`, `Channel`.`currentViewers` AS `Channel_currentViewers`, `Channel`.record AS `Channel_record`, `Channel`.`chatEnabled` AS `Channel_chatEnabled`, `Channel`.`chatBG` AS `Channel_chatBG`, `Channel`.`chatTextColor` AS `Channel_chatTextColor`, `Channel`.`chatAnimation` AS `Channel_chatAnimation`, `Channel`.`imageLocation` AS `Channel_imageLocation`, `Channel`.`offlineImageLocation` AS `Channel_offlineImageLocation`, `Channel`.`channelBannerLocation` AS `Channel_channelBannerLocation`, `Channel`.description AS `Channel_description`, `Channel`.`allowComments` AS `Channel_allowComments`, `Channel`.protected AS `Channel_protected`, `Channel`.`channelMuted` AS `Channel_channelMuted`, `Channel`.`showChatJoinLeaveNotification` AS `Channel_showChatJoinLeaveNotification`, `Channel`.`defaultStreamName` AS `Channel_defaultStreamName`, `Channel`.`autoPublish` AS `Channel_autoPublish`, `Channel`.`vanityURL` AS `Channel_vanityURL`, `Channel`.private AS `Channel_private`, `Channel`.`streamKey` AS `Channel_streamKey`, `Channel`.`xmppToken` AS `Channel_xmppToken`, `Channel`.`chatFormat` AS `Channel_chatFormat`, `Channel`.`chatHistory` AS `Channel_chatHistory`, `Channel`.`allowGuestNickChange` AS `Channel_allowGuestNickChange`, `Channel`.`showHome` AS `Channel_showHome`, `Channel`.`maxVideoRetention` AS `Channel_maxVideoRetention`, `Channel`.`maxClipRetention` AS `Channel_maxClipRetention`, `Channel`.`hubEnabled` AS `Channel_hubEnabled`, `Channel`.`hubNSFW` AS `Channel_hubNSFW`
FROM `Channel`
WHERE `Channel`.`owningUser` = %(owningUser_1)s
|
| 0.4466 |
SELECT EXPLAIN |
<unknown> |
SELECT channel_tags.id AS channel_tags_id, channel_tags.name AS channel_tags_name, channel_tags.`channelID` AS `channel_tags_channelID`, channel_tags.`taggedByUser` AS `channel_tags_taggedByUser`
FROM channel_tags
WHERE channel_tags.`channelID` = %(channelID_1)s
|
No messages logged.
| URL route | Endpoint name | HTTP methods | Is alias | Redirect to |
|---|---|---|---|---|
| / | root.main_page | GET, HEAD, OPTIONS | False | None |
| /apiv1/ | api.doc | GET, HEAD, OPTIONS | False | None |
| /apiv1/ | api.root | GET, HEAD, OPTIONS | False | None |
| /apiv1/channel/ | api.channel_api_1__list_channels | GET, HEAD, OPTIONS, POST | False | None |
| /apiv1/channel/<string:channelEndpointID> | api.channel_api_1__list_channel | DELETE, GET, HEAD, OPTIONS, PUT | False | None |
| /apiv1/channel/<string:channelEndpointID>/invites | api.channel_api_1__invites | DELETE, GET, HEAD, OPTIONS, POST | False | None |
| /apiv1/channel/<string:channelEndpointID>/restreams | api.channel_api_1__get_restreams | GET, HEAD, OPTIONS | False | None |
| /apiv1/channel/<string:channelEndpointID>/streams | api.channel_api_1__streams | GET, HEAD, OPTIONS | False | None |
| /apiv1/channel/activeChannels | api.channel_api_1__active_channels | GET, HEAD, OPTIONS | False | None |
| /apiv1/channel/authed/ | api.channel_api_1__list_channel_authed | GET, HEAD, OPTIONS | False | None |
| /apiv1/channel/hubChannels | api.channel_api_1_hub_channels | GET, HEAD, OPTIONS | False | None |
| /apiv1/channel/hubChannelsLive | api.channel_api_1__active_hub_channels | GET, HEAD, OPTIONS | False | None |
| /apiv1/channel/search | api.channel_api_1__search_channels | OPTIONS, POST | False | None |
| /apiv1/clip/ | api.clip_api_1__list_clips | GET, HEAD, OPTIONS | False | None |
| /apiv1/clip/<int:clipID> | api.clip_api_1__list_clip | DELETE, GET, HEAD, OPTIONS, PUT | False | None |
| /apiv1/clip/search | api.clip_api_1__search_clips | OPTIONS, POST | False | None |
| /apiv1/rtmp/playbackauth | api.rtmp_api_1_rtmp_playbackauth | OPTIONS, POST | False | None |
| /apiv1/rtmp/reccheck | api.rtmp_api_1_rtmp_reccheck | OPTIONS, POST | False | None |
| /apiv1/rtmp/recclose | api.rtmp_api_1_rtmp_recclose | OPTIONS, POST | False | None |
| /apiv1/rtmp/stage1 | api.rtmp_api_1_rtmp_stage1 | OPTIONS, POST | False | None |
| /apiv1/rtmp/stage2 | api.rtmp_api_1_rtmp_stage2 | OPTIONS, POST | False | None |
| /apiv1/rtmp/streamclose | api.rtmp_api_1_rtmp_streamclose | OPTIONS, POST | False | None |
| /apiv1/server/ | api.server_api_1__server | GET, HEAD, OPTIONS | False | None |
| /apiv1/server/edges | api.server_api_1__edges | GET, HEAD, OPTIONS | False | None |
| /apiv1/server/ping | api.server_api_1__ping | GET, HEAD, OPTIONS | False | None |
| /apiv1/server/rtmp | api.server_api_1__rtmp | DELETE, GET, HEAD, OPTIONS, POST | False | None |
| /apiv1/stream/ | api.stream_api_1__list_streams | GET, HEAD, OPTIONS | False | None |
| /apiv1/stream/<int:streamID> | api.stream_api_1__list_stream | GET, HEAD, OPTIONS, PUT | False | None |
| /apiv1/stream/search | api.stream_api_1__search_streams | OPTIONS, POST | False | None |
| /apiv1/swagger.json | api.specs | GET, HEAD, OPTIONS | False | None |
| /apiv1/topic/ | api.topic_api_1__list_topics | GET, HEAD, OPTIONS | False | None |
| /apiv1/topic/<int:topicID> | api.topic_api_1__list_topic | GET, HEAD, OPTIONS | False | None |
| /apiv1/topic/search | api.topic_api_1__search_topics | OPTIONS, POST | False | None |
| /apiv1/user/ | api.user_api_1__admin_user | DELETE, GET, HEAD, OPTIONS, POST | False | None |
| /apiv1/user/<string:username> | api.user_api_1__list_user | GET, HEAD, OPTIONS | False | None |
| /apiv1/user/role | api.user_api_1__role_mgmt | DELETE, OPTIONS, POST | False | None |
| /apiv1/user/search | api.user_api_1__search_users | OPTIONS, POST | False | None |
| /apiv1/video/ | api.video_api_1__list_videos | GET, HEAD, OPTIONS | False | None |
| /apiv1/video/<int:videoID> | api.video_api_1__list_video | DELETE, GET, HEAD, OPTIONS, PUT | False | None |
| /apiv1/video/search | api.video_api_1__search_videos | OPTIONS, POST | False | None |
| /apiv1/xmpp/auth | api.xmpp_api_1_xmpp_auth | OPTIONS, POST | False | None |
| /apiv1/xmpp/isuser | api.xmpp_api_1_xmppisuser | OPTIONS, POST | False | None |
| /auth | root.auth_check | GET, HEAD, OPTIONS, POST | False | None |
| /c/<vanityURL> | root.vanityURL_channel_link | GET, HEAD, OPTIONS | False | None |
| /c/<vanityURL>/live | root.vanityURL_live_link | GET, HEAD, OPTIONS | False | None |
| /channel/ | channel.channels_page | GET, HEAD, OPTIONS | False | None |
| /channel/<int:chanID>/ | channel.channel_view_page | GET, HEAD, OPTIONS | False | None |
| /channel/<loc>/stream | channel.channel_stream_link_page | GET, HEAD, OPTIONS | False | None |
| /channel/link/<channelLoc>/ | channel.channel_view_link_page | GET, HEAD, OPTIONS | False | None |
| /clip/<clipID> | clip.view_clip_page | GET, HEAD, OPTIONS | False | None |
| /clip/<clipID>/change | clip.clip_change_page | OPTIONS, POST | False | None |
| /clip/<clipID>/delete | clip.delete_clip_page | GET, HEAD, OPTIONS | False | None |
| /confirm | security.send_confirmation | GET, HEAD, OPTIONS, POST | False | None |
| /confirm/<token> | security.confirm_email | GET, HEAD, OPTIONS, POST | False | None |
| /fs-static/<path:filename> | security.static | GET, HEAD, OPTIONS | False | None |
| /login | security.login | GET, HEAD, OPTIONS, POST | False | None |
| /logout | security.logout | GET, HEAD, OPTIONS, POST | False | None |
| /m3u8/stream/index.m3u8 | m3u8.get_stream_index | GET, HEAD, OPTIONS | False | None |
| /m3u8/video/index.m3u8 | m3u8.get_all_video_index | GET, HEAD, OPTIONS | False | None |
| /messages | root.messages_page | GET, HEAD, OPTIONS | False | None |
| /notifications | root.notification_page | GET, HEAD, OPTIONS | False | None |
| /oauth/authorize/<provider> | oauth.oAuthAuthorize | GET, HEAD, OPTIONS | False | None |
| /oauth/convert/<provider> | oauth.oAuthConvert | OPTIONS, POST | False | None |
| /oauth/login/<provider> | oauth.oAuthLogin | GET, HEAD, OPTIONS | False | None |
| /p/<static_page> | root.render_staticPage | GET, HEAD, OPTIONS | False | None |
| /play/<videoID> | play.view_vid_page | GET, HEAD, OPTIONS | False | None |
| /play/<videoID>/change | play.vid_change_page | OPTIONS, POST | False | None |
| /play/<videoID>/clip | play.vid_clip_page | OPTIONS, POST | False | None |
| /play/<videoID>/comment | play.comments_vid_page | GET, HEAD, OPTIONS, POST | False | None |
| /play/<videoID>/delete | play.delete_vid_page | GET, HEAD, OPTIONS | False | None |
| /play/<videoID>/move | play.vid_move_page | OPTIONS, POST | False | None |
| /profile/<username> | profile.profile_view_page | GET, HEAD, OPTIONS | False | None |
| /proxy-adapt/<channelLoc>.m3u8 | root.proxy_adaptive_redirect | GET, HEAD, OPTIONS | False | None |
| /proxy-adapt/<channelLoc>/<file> | root.proxy_adaptive_subfolder_redirect | GET, HEAD, OPTIONS | False | None |
| /proxy/<channelLoc>/<file> | root.proxy_redirect | GET, HEAD, OPTIONS | False | None |
| /register | security.register | GET, HEAD, OPTIONS, POST | False | None |
| /reset | security.forgot_password | GET, HEAD, OPTIONS, POST | False | None |
| /reset/<token> | security.reset_password | GET, HEAD, OPTIONS, POST | False | None |
| /robots.txt | root.static_from_root | GET, HEAD, OPTIONS | False | None |
| /rtmpCheck | root.rtmp_check | GET, HEAD, OPTIONS, POST | False | None |
| /search | root.search_page | GET, HEAD, OPTIONS, POST | False | None |
| /settings/admin/channels/ | settings.admin_settings.admin_settings_channels.admin_channels_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/create_test_task | settings.admin_settings.createtestask | GET, HEAD, OPTIONS | False | None |
| /settings/admin/dashboard | settings.admin_settings.admin_dashboard | GET, HEAD, OPTIONS | False | None |
| /settings/admin/edge/ | settings.admin_settings.admin_settings_edge.edge_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/edge/ | settings.admin_settings.admin_settings_edge.edge_post | OPTIONS, POST | False | None |
| /settings/admin/features | settings.admin_settings.admin_devFeatures | GET, HEAD, OPTIONS | False | None |
| /settings/admin/oauth/ | settings.admin_settings.admin_settings_oauth.ouath_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/oauth/ | settings.admin_settings.admin_settings_oauth.oauth_post | OPTIONS, POST | False | None |
| /settings/admin/roles/ | settings.admin_settings.admin_settings_roles.roles_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/roles/<string:role_name> | settings.admin_settings.admin_settings_roles.role_get_perms | GET, HEAD, OPTIONS | False | None |
| /settings/admin/roles/custom | settings.admin_settings.admin_settings_roles.role_set_perms | OPTIONS, POST | False | None |
| /settings/admin/roles/delete | settings.admin_settings.admin_settings_roles.delete_custom_role | OPTIONS, POST | False | None |
| /settings/admin/rtmp/ | settings.admin_settings.admin_settings_rtmp.rtmp_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/rtmp/ | settings.admin_settings.admin_settings_rtmp.rtmp_post | OPTIONS, POST | False | None |
| /settings/admin/rtmpstat/<node> | settings.admin_settings.rtmpStat_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/run_task/<task> | settings.admin_settings.run_task | GET, HEAD, OPTIONS | False | None |
| /settings/admin/scheduler | settings.admin_settings.scheduler_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/settings/ | settings.admin_settings.global_settings.global_settings_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/settings/ | settings.admin_settings.global_settings.global_settings_post | OPTIONS, POST | False | None |
| /settings/admin/stickers/ | settings.admin_settings.admin_settings_stickers.stickers_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/stickers/ | settings.admin_settings.admin_settings_stickers.stickers_post | OPTIONS, POST | False | None |
| /settings/admin/streams/ | settings.admin_settings.admin_settings_streams.streams_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/topics/ | settings.admin_settings.admin_settings_topics.topics_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/topics/ | settings.admin_settings.admin_settings_topics.topics_post | OPTIONS, POST | False | None |
| /settings/admin/users/ | settings.admin_settings.admin_settings_users.users_admin_page | GET, HEAD, OPTIONS | False | None |
| /settings/admin/users/ | settings.admin_settings.admin_settings_users.users_admin_post | OPTIONS, POST | False | None |
| /settings/admin/users/action/<string:action> | settings.admin_settings.admin_settings_users.users_admin_action | GET, HEAD, OPTIONS | False | None |
| /settings/admin/webhooks/ | settings.admin_settings.admin_settings_webhooks.admin_page | GET, HEAD, OPTIONS | False | None |
| /settings/api | settings.settings_apikeys_page | GET, HEAD, OPTIONS | False | None |
| /settings/api/<string:action> | settings.settings_apikeys_post_page | OPTIONS, POST | False | None |
| /settings/channels/ | settings.channel_settings.settings_channels_list_page | GET, HEAD, OPTIONS | False | None |
| /settings/channels/<int:channelId> | settings.channel_settings.settings_channel_details_page | GET, HEAD, OPTIONS, POST | False | None |
| /settings/channels/<int:channelId>/delete | settings.channel_settings.settings_channels_delete_channel | OPTIONS, POST | False | None |
| /settings/channels/chat | settings.channel_settings.settings_channels_chat_page | GET, HEAD, OPTIONS, POST | False | None |
| /settings/channels/new | settings.channel_settings.settings_channels_new_channel | OPTIONS, POST | False | None |
| /settings/channels/streamKey | settings.channel_settings.settings_channel_new_stream_key | OPTIONS, POST | False | None |
| /settings/initialSetup | settings.initialSetup | OPTIONS, POST | False | None |
| /settings/user/ | settings.user_settings.user_page | GET, HEAD, OPTIONS, POST | False | None |
| /settings/user/addInviteCode | settings.user_settings.user_addInviteCode | GET, HEAD, OPTIONS | False | None |
| /settings/user/deleteSelf | settings.user_settings.user_delete_own_account | OPTIONS, POST | False | None |
| /settings/user/subscriptions | settings.user_settings.subscription_page | GET, HEAD, OPTIONS | False | None |
| /static/<path:filename> | static | GET, HEAD, OPTIONS | False | None |
| /streamer/ | streamers.streamers_page | GET, HEAD, OPTIONS | False | None |
| /streamer/<userID>/ | streamers.streamers_view_page | GET, HEAD, OPTIONS | False | None |
| /sw.js | root.static_from_root_sw | GET, HEAD, OPTIONS | False | None |
| /swaggerui/<path:filename> | restx_doc.static | GET, HEAD, OPTIONS | False | None |
| /tf-rescue | security.two_factor_rescue | GET, HEAD, OPTIONS, POST | False | None |
| /tf-select | security.tf_select | GET, HEAD, OPTIONS, POST | False | None |
| /tf-setup | security.two_factor_setup | GET, HEAD, OPTIONS, POST | False | None |
| /tf-validate | security.two_factor_token_validation | GET, HEAD, OPTIONS, POST | False | None |
| /topic/ | topic.topic_page | GET, HEAD, OPTIONS | False | None |
| /topic/<topicID>/ | topic.topic_view_page | GET, HEAD, OPTIONS | False | None |
| /unsubscribe | root.unsubscribe_page | GET, HEAD, OPTIONS | False | None |
| /upload/video-details | upload.upload_vid | OPTIONS, POST | False | None |
| /upload/video-files | upload.upload | GET, HEAD, OPTIONS, POST | False | None |
| /verify | security.verify | GET, HEAD, OPTIONS, POST | False | None |
| /view/<loc>/ | liveview.view_page | GET, HEAD, OPTIONS | False | None |
| /xmpp | root.xmpp_proxy | DELETE, GET, HEAD, OPTIONS, POST | False | None |
| Key | Value |
|---|---|
| _login_user | <flask_security.core.AnonymousUser object at 0x7f7e7783af50> |
| debug_toolbar | <flask_debugtoolbar.DebugToolbarExtension object at 0x7f7e7d250b80> |
| identity | <AnonymousIdentity id="None" auth_type="None" provides=set()> |
| view_rate_limit | None |