Repository navigation
Technical Plugin YPTStorage
Moves media between the Streamer and a separate AVideo Storage service.
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:
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.
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.
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.
| 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 |
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 |
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 | — |
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 |
|---|---|
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 |
- 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