Repository navigation
Technical Plugin Notifications
Sends configured email notifications for video, live and comment events.
Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.
- Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
- Code ownership: independently versioned plugin repository.
- Reported version:
9.1. - Source revision:
378a76c9d2d53744685efcdde88cb33826ee1c94. - Entry class file: Notifications.php.
Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.
| Plugin | Required by declaration | Source reason |
|---|---|---|
| UserNotifications | Optional | Optional per-user push notification preferences |
| Override | Implementation |
|---|---|
getTags() |
Notifications.php:20 |
afterNewComment($comments_id) |
Notifications.php:462 |
afterNewResponse($comments_id) |
Notifications.php:466 |
onNewVideo($videos_id) |
Notifications.php:501 |
onEncoderNotifyIsDone($videos_id) |
Notifications.php:537 |
onUploadIsDone($videos_id) |
Notifications.php:541 |
onUserSignup($users_id) |
Notifications.php:545 |
on_publish($users_id, $live_servers_id, $liveTransmitionHistory_id, $key, $isReconnection) |
Notifications.php:573 |
getHeadCode() |
Notifications.php:717 |
getPluginMenu() |
Notifications.php:801 |
getMobileInfo() |
Notifications.php:806 |
These are direct assignments inside getEmptyDataObject(), not evaluated effective defaults. Stored plugins.object_data, globals, structured values and conditional branches may alter runtime behavior. Private/default credential values are omitted.
| Field | Literal default or expression type | Literal source label/help | Evidence |
|---|---|---|---|
emailEnabled |
true |
— | source |
bellNotificationEnabled |
true |
— | source |
emailLogo |
Computed/structured; inspect source | — | source |
notifyVerifiedUsersOnly |
false |
— | source |
notifyVideoUploadToVideoOwner |
true |
— | source |
notifyVideoUploadToSubscribers |
true |
— | source |
notifyVideoUploadToTagsSubscribers |
true |
— | source |
notifyVideoUploadToEmail |
"" |
— | source |
notifyVideoUploadSubject |
"A new Video was uploaded" |
— | source |
notifyVideoUploadText |
Computed/structured; inspect source | — | source |
notifyVideoUploadWebhook |
"" |
— | source |
notifyCommentsToVideoOwner |
true |
— | source |
notifyCommentsToEmail |
"" |
— | source |
notifyCommentsSubject |
"A new comment was made on video" |
— | source |
notifyCommentsText |
Computed/structured; inspect source | — | source |
notifyResponseToVideoOwner |
true |
— | source |
notifyResponseToCommenter |
true |
— | source |
notifyResponseToEmail |
"" |
— | source |
notifyResponseSubject |
"A new response was made on video" |
— | source |
notifyResponseText |
Computed/structured; inspect source | — | source |
notifySubscribersWhenSomeoneGoesLive |
false |
— | source |
notifySubscribersWhenSomeoneGoesLiveSubject |
Computed/structured; inspect source | — | source |
notifySubscribersWhenSomeoneGoesLiveText |
Computed/structured; inspect source | — | source |
notifyNewUserSignUp |
false |
— | source |
signUpRequestUploadRights |
false |
— | source |
signUpRequestLivestreamRights |
false |
— | source |
signUpAutoResponseMessage |
Computed/structured; inspect source | — | source |
oneSignalEnabled |
false |
— | source |
oneSignalOnNewVideo |
true |
— | source |
oneSignalOnLiveStream |
true |
— | source |
oneSignalAPPID |
"" |
— | source |
oneSignalRESTAPIKEY |
Private setting; value omitted | — | source |
oneSignalFIREBASE_SENDER_ID |
"" |
— | source |
oneSignalDebugMode |
false |
— | source |
This inventory distinguishes implementation files from an API specification. Includes, templates, callbacks and CLI workers are not interchangeable HTTP endpoints. Request-field names below are direct source references, not a complete schema or permission declaration.
| File | Source role | Direct request fields observed |
|---|---|---|
| Notifications.php | plugin entry class |
email, pass
|
| test.php | PHP page/include/worker; inspect caller | — |
No CREATE TABLE names were extracted from available plugin SQL. The plugin can still use core tables, PHP-created schema or another component's data. Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.
Visibility and implementation semantics must be checked in source. Nonempty string defaults are represented as . This is a symbol reference, not a stable public API promise.
| Function or method | Source |
|---|---|
getPluginDependencies() |
14 |
getTags() |
20 |
getDescription() |
26 |
getPluginVersion() |
34 |
getName() |
39 |
getUUID() |
43 |
getEmptyDataObject() |
47 |
shouldSendBellNotification() |
105 |
addBellNotificationVideo($videos_id, $to_users_id, $title, $icon) |
117 |
getVideoUploadEmails($videos_id, $verifiedOnly = false) |
142 |
getCommentEmails($comments_id) |
196 |
getResponseEmails($comments_id) |
215 |
getParentCommentEmail($comments_id, $emails = array()) |
239 |
sendVideoUploadEmails($videos_id) |
260 |
getCommentAndParents($comments_id, $child = '') |
332 |
sendVideoCommentsEmails($comments_id) |
355 |
sendVideoResponseEmails($comments_id) |
382 |
replaceText($users_id, $videos_id, $text) |
403 |
replaceTemplateText($videos_id, $message) |
418 |
send($emailsArray, $subject, $body) |
443 |
afterNewComment($comments_id) |
462 |
afterNewResponse($comments_id) |
466 |
getVideoNotificationSentFilename($videos_id) |
470 |
setVideoNotificationSent($videos_id) |
473 |
unsetVideoNotificationSent($videos_id) |
483 |
isVideoNotificationSent($videos_id) |
492 |
onNewVideo($videos_id) |
501 |
onEncoderNotifyIsDone($videos_id) |
537 |
onUploadIsDone($videos_id) |
541 |
onUserSignup($users_id) |
545 |
on_publish($users_id, $live_servers_id, $liveTransmitionHistory_id, $key, $isReconnection) |
573 |
addBellNotificationToUsers($to_users_id, $title, $msg, $image, $href, $type, $element_id, $icon) |
691 |
getHeadCode() |
717 |
sendOneSignal($msg, $url = "'<string>'") |
745 |
getOpenSignal() |
783 |
getPluginMenu() |
801 |
getMobileInfo() |
806 |
- Check the installed/enabled version and the dependencies/settings above.
- Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
- Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
- Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.
Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.
Start
Install and update
- Install on Ubuntu 24.04 or 26.04
- Installation Setup Page
- Scheduler cron job (required)
- Set up email
- Use HTTPS
- Own Encoder
- Docker
- Update AVideo
- Backup
- Secure file permissions
- Server command-line tools
- Hidden configuration options
Videos
- Upload a video
- Local Encoder (on your computer)
- Bulk upload by FTP
- Import a channel
- Publish on YouTube and social media
- Privacy options
- Only for logged-in users
- Resolutions by user group
- Storage options
- Move and protect video files
- Video does not play
Users
Live
- Make a live stream
- Stream with OBS
- Own live server
- One live server, many sites
- Live server install errors
- Live does not play
Plugins
Problems
Other
- Translate your site
- Write a plugin (developers)
- Technical reference (developers and advanced administrators)
Old and retired guides