Skip to content

Technical Plugin YPTStorage

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

Technical: YPTStorage plugin

Moves media between the Streamer and a separate AVideo Storage service.

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: independently versioned plugin repository.
  • Reported version: 7.0.
  • Source revision: e9b328dbaae4306b9423a822deb916caa4c46536.
  • Entry class file: YPTStorage.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

Transfers have local-to-site, site-to-local and site-to-site paths, including HLS archives. Small local dummy files can intentionally represent real remotely stored objects. Verify the backend object before diagnosing a local placeholder as corruption.

Dependencies

No literal dependency declaration was extracted. This does not prove the plugin is standalone.

Literal runtime plugin references: SecureVideosDirectory, VideoHLS. These calls do not mean every referenced plugin is mandatory.

Hook integration

Override Implementation
getTags() YPTStorage.php:10
getPluginMenu() YPTStorage.php:46
getFooterCode() YPTStorage.php:53
getVideosManagerListButton() YPTStorage.php:67
getVideoManagerButton() YPTStorage.php:76
getVideoTags($videos_id) YPTStorage.php:813
onUploadIsDone($videos_id) YPTStorage.php:855
onEncoderNotifyIsDone($videos_id) YPTStorage.php:876

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
defaultStorage 0 — source
userStorage Computed/structured; inspect source — 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
YPTStorage.php plugin entry class —
addSite.json.php JSON entry point; inspect caller and guard url
bulkMove.json.php JSON entry point; inspect caller and guard sites_id, videos_ids
canWatchVideo.json.php JSON entry point; inspect caller and guard filename, token
get.php PHP page/include/worker; inspect caller video_id
index.php PHP page/include/worker; inspect caller —
info.php PHP page/include/worker; inspect caller cancel, videos_id
isMoving.php PHP page/include/worker; inspect caller videos_id
move.json.php JSON entry point; inspect caller and guard sites_id, video_id
moveInBg.json.php JSON entry point; inspect caller and guard sites_id, video_id
page/editor.php PHP page/include/worker; inspect caller —
page/editorSave.php PHP page/include/worker; inspect caller sites_id, user_id
page/getVideoManagerButton.php PHP page/include/worker; inspect caller —
sites.json.php JSON entry point; inspect caller and guard draw
sitesDelete.json.php JSON entry point; inspect caller and guard id
sitesSave.json.php JSON entry point; inspect caller and guard id, name, secret, status, url
status.php PHP page/include/worker; inspect caller url
tools/moveAllVideosToStorage.php PHP page/include/worker; inspect caller —
videoManagerFooter.php PHP page/include/worker; inspect caller —

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
getTags() 10
getDescription() 17
getPluginVersion() 22
getName() 27
getUUID() 32
getEmptyDataObject() 37
getPluginMenu() 46
getFooterCode() 53
getVideosManagerListButton() 67
getVideoManagerButton() 76
tarHLS($videos_id) 86
createDummyHLS($videos_id) 152
removeFiles($filename, $sites_id) 176
objHasError($obj) 216
objGetMessages($obj) 235
moveFromSiteToSite($videos_id, $sites_id) 252
moveFromSiteToSiteHLS($videos_id, $sites_id) 291
moveFromSiteToSiteVideo($video_url, $videos_id, $sites_id) 354
moveFromSiteToLocal($videos_id) 394
moveFromSiteToLocalHLS($videos_id, $newTry = 0) 431
moveFromSiteToLocalVideo($video_url, $videos_id) 520
moveFromLocalToSite($videos_id, $sites_id) 564
moveFromLocalToSiteHLS($videos_id, $sites_id) 617
moveFromLocalToSiteVideo($video_url, $sites_id, $videos_id) 691
getTmpDir() 765
getLogFile($videos_id) 778
log($videos_id, $msg) 784
removeLog($videos_id) 795
getLog($videos_id) 804
getVideoTags($videos_id) 813
getStorageSite($users_id) 844
onUploadIsDone($videos_id) 855
onEncoderNotifyIsDone($videos_id) 876
getSiteFromURL($url) 881
getFileInfo($fileName, $siteURL = "'<string>'") 899
getMovingLogFile($videos_id) 919
setIsMoving($videos_id, $current_sites_id, $sites_id) 925
shouldMove($videos_id) 948
getMovingLog($videos_id) 970
isMoving($videos_id) 983
movingInfo($videos_id) 992
movingIsDone($videos_id) 1033
getFileSize($videos_id, $sites_id) 1050
getHigestResolution($videos_id, $sites_id) 1079
getHigestResolutionFromFilename($filename) 1106
getUsageFromFilename($filename) 1112
checkIfFileSizeIsTheSame($videos_id, $source_sites_id, $destination_sites_id) 1120
createDummy($videos_id) 1136
getAddress($filename) 1168
fixURLIfIsMP4($filename) 1178
getURL($filename) 1193

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.

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

Clone this wiki locally