Skip to content

Technical Plugin API

Daniel Neto edited this page Oct 29, 2026 · 1 revision

Technical: API plugin

Provides HTTP integration methods for metadata, users, playback, playlists and enabled plugins.

Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.

Source baseline

  • Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
  • Code ownership: AVideo Streamer repository.
  • Reported version: 1.0 (inherited; verify package).
  • Source revision: 7d48f2dfc0289236718a3f9fba7c5ffecff4a37f.
  • Entry class file: API.php.

Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.

Behavior and operational checks

GET requests reach get.json.php and POST/DELETE requests reach set.json.php through the API router. Each method has its own public/credential/playback requirements. Metadata and playable media source URLs have different contracts. Read Technical-API before changing request parameters, response fields or authentication.

Dependencies

Plugin Required by declaration Source reason
ADs Optional Optional ads endpoint integration
Live Optional Optional live stream endpoints
PlayLists Optional Optional playlist endpoints
VideoTags Optional Optional video tags endpoint
PayPerView Optional Optional PPV purchase endpoints
YPTWallet Optional Optional wallet balance endpoints
Subscription Optional Optional subscription endpoints
MobileManager Optional Optional mobile app configuration endpoint
GoogleAds_IMA Optional Optional VMAP/ads endpoint integration
AD_Server Optional Optional VMAP/ads endpoint integration
AdsForJesus Optional Optional VMAP/ads endpoint integration
User_Location Optional Optional geolocation-based endpoint behavior
Chat2 Optional Optional chat endpoints
Meet Optional Optional meeting endpoints
UserNotifications Optional Optional push notification endpoints
YouPHPFlix2 Optional Optional Flix-mode listing endpoint behavior

Literal runtime plugin references: ADs, Chat2, Live, Meet, MobileManager, PayPerView, PlayLists, ReportVideo, Subscription, SubtitleSwitcher, UserNotifications, VideoTags, YPTWallet. These calls do not mean every referenced plugin is mandatory.

Hook integration

Override Implementation
getTags() API.php:51
getPluginMenu() API.php:141

Configuration assignments

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
APISecret Private setting; value omitted — source
standAloneFFMPEG '' — source
documentationAllowedIPs '' Documentation allowed IPs: Allow these exact IPv4/IPv6 addresses to access Swagger documentation without login. Separate addresses with commas or spaces. Empty means admin only. This does not authorize API operations. Everyone sharing an allowed IP has access. Forwarded IPs require configured trusted proxies. source

Files and request surface

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
API.php plugin entry class APISecret, add, birth_date, canCreateMeet, canStream, canUpload, captcha, catName, created, current, emailVerified, httpHeaders, isAdmin, isCompany, lower_then_id, message, order, playlists_id, room_users_id, rowCount, searchPhrase, sort, status, string, time, to_users_id, userAgent, users_id, videos_id
check.ffmpeg.json.php JSON entry point; inspect caller and guard —
ffmpeg.php PHP page/include/worker; inspect caller —
get.json.php JSON entry point; inspect caller and guard gzip, rowCount
index.php PHP page/include/worker; inspect caller —
info.php PHP page/include/worker; inspect caller json
kill.ffmpeg.json.php JSON entry point; inspect caller and guard pid
list.ffmpeg.json.php JSON entry point; inspect caller and guard —
notify.ffmpeg.json.php JSON entry point; inspect caller and guard callback, notify, notifyCode
router.php PHP page/include/worker; inspect caller APIName, APISecret
set.json.php JSON entry point; inspect caller and guard gzip
standAlone/ffmpeg.json.php JSON entry point; inspect caller and guard —
standAlone/functions.php PHP page/include/worker; inspect caller APISecret
status.json.php JSON entry point; inspect caller and guard —
swagger.json.php JSON entry point; inspect caller and guard —

Data and migrations

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.

Main-file named symbols

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() 30
getTags() 51
getDescription() 59
getName() 64
getUUID() 69
addRowInfo($obj) 74
getEmptyDataObject() 102
canAccessDocumentation() 113
getPluginMenu() 141
set($parameters) 148
get($parameters) 191
startResponseObject($parameters) 234
getToPost() 252
get_api_plugin_parameters($parameters) 293
get_api_adsInfo($parameters) 362
get_api_preauthorize($parameters) 501
get_api_id($parameters) 526
get_api_is_mobile($parameters) 578
get_api_category($parameters) 669
get_api_video_from_program($parameters) 770
get_api_audio_from_program($parameters) 862
get_api_suggested_programs($parameters) 889
get_api_tags($parameters) 958
get_api_video_file($parameters) 1021
get_api_user_can_watch_video($parameters) 1085
get_api_video_password_is_correct($parameters) 1150
get_api_ppv_plans($parameters) 1207
set_api_ppv_buy($parameters) 1297
get_api_subscription_plans($parameters) 1377
set_api_subscription_buy($parameters) 1466
get_api_video($parameters) 1674
filterVideoSources(&$row, $parameters, $hasAPISecret) 1978
getSubtitle($filename) 2001
set_api_video_save($parameters) 2094
get_api_videosCount($parameters) 2233
set_api_video_delete($parameters) 2300
set_api_comment($parameters) 2398
get_api_comment($parameters) 2509
get_api_live_schedule($parameters) 2583
set_api_live_schedule_delete($parameters) 2655
set_api_live_schedule($parameters) 2798
get_api_livestreams($parameters) 2902
set_api_livestream_save($parameters) 2987
set_api_user($parameters) 3081
get_api_user($parameters) 3087
get_api_users_list($parameters) 3236
get_api_videosViewsCount($parameters) 3318
get_api_channels($parameters) 3407
get_api_program($parameters) 3459
get_api_programs($parameters) 3523
set_api_create_programs($parameters) 3608
set_api_delete_programs($parameters) 3674
set_api_programs($parameters) 3761
get_api_subscribers($parameters) 3839
get_api_categories($parameters) 3905
get_api_likes($parameters) 3959
set_api_like($parameters) 4028
set_api_dislike($parameters) 4083
set_api_removelike($parameters) 4136
get_api_signIn($parameters) 4179
set_api_signIn($parameters) 4225
set_api_signUp($parameters) 4335
get_api_signUp($parameters) 4375
like($parameters, $like) 4392
get_api_vmap($parameters) 4458
get_api_vast($parameters) 4519
get_api_IP2Location($parameters) 4557
get_api_favorite($parameters) 4605
set_api_favorite($parameters) 4664
set_api_removeFavorite($parameters) 4702
favorite($parameters, $add) 4707
get_api_watch_later($parameters) 4756
set_api_watch_later($parameters) 4819
set_api_removeWatch_later($parameters) 4857
watch_later($parameters, $add) 4862
set_api_chat2_message($parameters) 4915
get_api_chat2_chat($parameters) 4968
get_api_chat2_room($parameters) 5031
getAPISecret() 5058
get_api_locales($parameters) 5092
get_api_locale($parameters) 5135
set_api_userImages($parameters) 5203
get_api_meet($parameters) 5264
set_api_meet($parameters) 5352
get_api_notifications($parameters) 5410
get_api_app($parameters) 5466
set_api_login_code($parameters) 5549
get_api_login_code($parameters) 5595
set_api_birth($parameters) 5680
set_api_user_inactive($parameters) 5748
set_api_user_delete($parameters) 5922
removeBlockedUsersComments($comments) 6084
checkRateLimit($operation, $maxAttempts, $timeWindow) 6118
get_api_is_verified($parameters) 6180
set_api_send_verification_email($parameters) 6238
isAPISecretValid() 6254
get_api_isAPISecretValid() 6298
get_api_decryptString() 6358
__construct($message = '<string>', $error = true, $response = []) 6402
finalize($message = null, $error = null, $response = null) 6433
__construct($type, $title, $endpoint, $rowCount, $childs = array()) 6481

Supporting PHP declarations

These symbols are grouped by source file; inspect the class declaration and visibility before calling them.

router.php

Named symbol Source
redirectIfPortOpen($newPort, $timeout = 1) 78
_getBearerToken() 194

standAlone/functions.php

Named symbol Source
getStandaloneAPIEndpoint($apiName) 10
getStandaloneAPIAuthPayload() 20
isStandaloneDecryptedPayloadValid($payload) 31
_decryptString($string) 44
getInput($key, $default = '') 72
sanitizeFFmpegCommand($command) 98
convertElapsedTimeToSeconds($elapsedTime) 127
listFFmpegProcesses($keyword = '') 146
killFFmpegProcess($pid) 176

Diagnostics and validation

  1. Check the installed/enabled version and the dependencies/settings above.
  2. Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
  3. Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
  4. Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.

Related test filenames (name matches only; not executed by generation):

Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.

Clone this wiki locally