Repository navigation
Technical Plugin FansSubscriptions
Manages creator subscriptions and associated access/renewal behavior.
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:
3.7. - Source revision:
8bc936934e1571386bed42acca182a629f4206d1. - Entry class file: FansSubscriptions.php.
Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.
No literal dependency declaration was extracted. This does not prove the plugin is standalone.
Literal runtime plugin references: YPTWallet. These calls do not mean every referenced plugin is mandatory.
| Override | Implementation |
|---|---|
updateScript() |
FansSubscriptions.php:31 |
getPluginMenu() |
FansSubscriptions.php:63 |
getGalleryActionButton($videos_id) |
FansSubscriptions.php:68 |
getNetflixActionButton($videos_id) |
FansSubscriptions.php:74 |
getWatchActionButton($videos_id) |
FansSubscriptions.php:80 |
profileTabName($users_id) |
FansSubscriptions.php:86 |
profileTabContent($users_id) |
FansSubscriptions.php:92 |
getVideosManagerListButton() |
FansSubscriptions.php:101 |
getHeadCode() |
FansSubscriptions.php:169 |
getModeYouTube($videos_id) |
FansSubscriptions.php:174 |
getEmbed($videos_id) |
FansSubscriptions.php:205 |
getModeYouTubeLive($users_id_live_owner) |
FansSubscriptions.php:209 |
userCanWatchVideo($users_id, $videos_id) |
FansSubscriptions.php:284 |
userCanWatchVideoWithAds($users_id, $videos_id) |
FansSubscriptions.php:323 |
getLivePanel() |
FansSubscriptions.php:464 |
navBarButtons() |
FansSubscriptions.php:470 |
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 |
|---|---|---|---|
adminCutPercentage |
Computed/structured; inspect source | — | source |
minimumBalanceToAutoTransfer |
100 |
— | source |
allowFreePlayWithAds |
false |
— | source |
displayLeftMenuSubscribeButton |
true |
— | source |
thanksForSubscribe |
Computed/structured; inspect source | — | 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 |
|---|---|---|
| FansSubscriptions.php | plugin entry class | videos_id |
| Objects/Fsubscriptions.php | class/helper implementation | — |
| Objects/Fsubscriptions_logs.php | class/helper implementation | — |
| Objects/Fsubscriptions_plan.php | class/helper implementation | — |
| View/Fsubscriptions/add.json.php | JSON entry point; inspect caller and guard |
expiration, fsubscriptions_plan_id, id, json, status, subscribes_id
|
| View/Fsubscriptions/delete.json.php | JSON entry point; inspect caller and guard | id |
| View/Fsubscriptions/index.php | PHP page/include/worker; inspect caller | — |
| View/Fsubscriptions/index_body.php | PHP page/include/worker; inspect caller | — |
| View/Fsubscriptions/index_head.php | PHP page/include/worker; inspect caller | — |
| View/Fsubscriptions/index_my_subscriptions.php | PHP page/include/worker; inspect caller | — |
| View/Fsubscriptions/list.json.php | JSON entry point; inspect caller and guard | draw |
| View/Fsubscriptions_logs/add.json.php | JSON entry point; inspect caller and guard |
fsubscriptions_id, id, json
|
| View/Fsubscriptions_logs/delete.json.php | JSON entry point; inspect caller and guard | id |
| View/Fsubscriptions_logs/index.php | PHP page/include/worker; inspect caller | — |
| View/Fsubscriptions_logs/index_body.php | PHP page/include/worker; inspect caller | — |
| View/Fsubscriptions_logs/index_head.php | PHP page/include/worker; inspect caller | — |
| View/Fsubscriptions_logs/list.json.php | JSON entry point; inspect caller and guard | draw |
| View/Fsubscriptions_plan/add.json.php | JSON entry point; inspect caller and guard |
description, how_many_days, id, json_parameters, name, price, status, users_id
|
| View/Fsubscriptions_plan/delete.json.php | JSON entry point; inspect caller and guard | id |
| View/Fsubscriptions_plan/index.php | PHP page/include/worker; inspect caller | — |
| View/Fsubscriptions_plan/index_body.php | PHP page/include/worker; inspect caller | — |
| View/Fsubscriptions_plan/index_head.php | PHP page/include/worker; inspect caller | — |
| View/Fsubscriptions_plan/list.json.php | JSON entry point; inspect caller and guard | draw |
| View/buy.php | PHP page/include/worker; inspect caller |
plans_id, users_id_live_owner, videos_id
|
| View/editor.php | PHP page/include/worker; inspect caller | — |
| View/panel.php | PHP page/include/worker; inspect caller | — |
| View/tabMyAccount.php | PHP page/include/worker; inspect caller | — |
| actionButtonGallery.php | PHP page/include/worker; inspect caller | — |
| actionButtonNetflix.php | PHP page/include/worker; inspect caller | — |
| crontab.php | PHP page/include/worker; inspect caller | — |
| install/install.sql | schema/migration SQL | — |
| navBarButtons.php | PHP page/include/worker; inspect caller | — |
| subscribePlan.php | PHP page/include/worker; inspect caller | plans_id |
| toogleFansOnly.json.php | JSON entry point; inspect caller and guard | videos_id |
| toogleFansOnlyLive.json.php | JSON entry point; inspect caller and guard | — |
Tables named in available CREATE TABLE statements: fsubscriptions, fsubscriptions_logs, fsubscriptions_plan.
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 |
|---|---|
getDescription() |
12 |
getName() |
18 |
getUUID() |
22 |
getPluginVersion() |
26 |
updateScript() |
31 |
getEmptyDataObject() |
42 |
getPluginMenu() |
63 |
getGalleryActionButton($videos_id) |
68 |
getNetflixActionButton($videos_id) |
74 |
getWatchActionButton($videos_id) |
80 |
profileTabName($users_id) |
86 |
profileTabContent($users_id) |
92 |
getVideosManagerListButton() |
101 |
setFansOnly($fansOnly, $videos_id) |
124 |
isFansOnly($videos_id) |
143 |
toogleFansOnly($videos_id) |
148 |
toogleFansOnlyLive($users_id) |
154 |
getFansOnlyLive($users_id) |
162 |
getHeadCode() |
169 |
getModeYouTube($videos_id) |
174 |
getEmbed($videos_id) |
205 |
getModeYouTubeLive($users_id_live_owner) |
209 |
canUserWatchLive($users_id, $users_id_live_owner) |
225 |
isSubscribes($videos_id, $users_id = 0) |
248 |
isSubscribesFromUser($users_id, $subscriber_users_id) |
256 |
getSubscribes($subscriber_users_id, $users_id) |
263 |
getOrCreateSubscribes($subscriber_users_id, $users_id) |
274 |
userCanWatchVideo($users_id, $videos_id) |
284 |
canWatch($videos_id, $users_id = 0) |
310 |
userCanWatchVideoWithAds($users_id, $videos_id) |
323 |
renew($users_id, $plans_id) |
334 |
addToHistory($fsubscriptions_id, $json) |
433 |
canUserEditPlan($fsubscriptions_id, $users_id = 0) |
440 |
getLivePanel() |
464 |
navBarButtons() |
470 |
getPlansFromUsersID($users_id) |
475 |
getPlansFromVideosID($videos_id) |
479 |
hasPlansFromVideosID($videos_id) |
484 |
hasPlansUsersID($users_id) |
488 |
These symbols are grouped by source file; inspect the class declaration and visibility before calling them.
Declared classes: Fsubscriptions.
| Named symbol | Source |
|---|---|
getSearchFieldsNames() |
9 |
getTableName() |
13 |
getAllSubscribes($users_id = 0, $expiresToday = false) |
17 |
getAllSubscribesExpiresToday($users_id=0) |
50 |
getAllFsubscriptions_plan($users_id = 0) |
54 |
setId($id) |
81 |
setSubscribes_id($subscribes_id) |
85 |
setFsubscriptions_plan_id($fsubscriptions_plan_id) |
89 |
setJson($json) |
93 |
setExpiration($expiration) |
97 |
setStatus($status) |
101 |
getId() |
105 |
getSubscribes_id() |
109 |
getFsubscriptions_plan_id() |
113 |
getJson() |
117 |
getExpiration() |
121 |
getStatus() |
125 |
getAll($users_id = 0, $active_only = false) |
129 |
getTotal($users_id = 0, $active_only = false) |
166 |
getSubscriptions($users_id, $fsubscriptions_plans_id, $stillGood = true, $status = '<string>') |
191 |
getPlanSubscription($subscriber_users_id, $fsubscriptions_plans_id, $stillGood = true, $status = '<string>') |
226 |
getSubscriptionToChannel($users_id, $subscriber_users_id, $stillGood = true, $status = '<string>') |
258 |
Declared classes: Fsubscriptions_logs.
| Named symbol | Source |
|---|---|
getSearchFieldsNames() |
9 |
getTableName() |
13 |
getAllFsubscriptions() |
17 |
setId($id) |
38 |
setFsubscriptions_id($fsubscriptions_id) |
42 |
setJson($json) |
46 |
getId() |
54 |
getFsubscriptions_id() |
58 |
getJson() |
62 |
Declared classes: Fsubscriptions_plan.
| Named symbol | Source |
|---|---|
getSearchFieldsNames() |
9 |
getTableName() |
13 |
getAllUsers() |
17 |
setId($id) |
36 |
setName($name) |
40 |
setDescription($description) |
45 |
setPrice($price) |
49 |
setStatus($status) |
53 |
setJson_parameters($json_parameters) |
57 |
setHow_many_days($how_many_days) |
61 |
setUsers_id($users_id) |
65 |
getId() |
70 |
getName() |
74 |
getDescription() |
78 |
getPrice() |
82 |
getStatus() |
86 |
getJson_parameters() |
90 |
getHow_many_days() |
94 |
getUsers_id() |
98 |
getAllActive($users_id = 0) |
102 |
getAll($users_id = 0, $active_only = false) |
107 |
getTotal($users_id = 0, $active_only = false) |
136 |
- 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