Skip to content

Technical Plugin VideoOffline

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

Technical: VideoOffline plugin

Integrates video downloads and offline playback storage in supported clients.

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: 4.6.
  • Source revision: 676a221d933693233b63b45a80eb40792cbe2f5a.
  • Entry class file: VideoOffline.php.

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

Dependencies

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

Literal runtime plugin references: CDN. These calls do not mean every referenced plugin is mandatory.

Hook integration

Override Implementation
updateScript() VideoOffline.php:38
getHeadCode() VideoOffline.php:95
getFooterCode() VideoOffline.php:107
profileTabName($users_id) VideoOffline.php:159
getPermissionsOptions() VideoOffline.php:164
getWatchActionButton($videos_id) VideoOffline.php:193
getGalleryActionButton($videos_id) VideoOffline.php:200
getNetflixActionButton($videos_id) VideoOffline.php:207
navBarButtons() VideoOffline.php:399

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
videoOfflineExpiration Computed/structured; inspect source — source
canWatchOffline 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
VideoOffline.php plugin entry class —
actionButton.php PHP page/include/worker; inspect caller —
actionButtonGallery.php PHP page/include/worker; inspect caller —
actionButtonGallery2.php PHP page/include/worker; inspect caller —
actionButtonNetflix.php PHP page/include/worker; inspect caller —
adapterDexie.js browser/worker JavaScript; verify loader —
adapterPouchDB.js browser/worker JavaScript; verify loader —
convertVideo.commandLine.php PHP page/include/worker; inspect caller —
download.json.php JSON entry point; inspect caller and guard token, videos_id
downloadOffline.php PHP page/include/worker; inspect caller —
downloadProgress.json.php JSON entry point; inspect caller and guard videos_id
navBarButtons.php PHP page/include/worker; inspect caller —
offlineAssets.js browser/worker JavaScript; verify loader —
offlineButton.js browser/worker JavaScript; verify loader —
offlineVideo.js browser/worker JavaScript; verify loader —
offlineVideo.php PHP page/include/worker; inspect caller socketResourceId, videos_id
player.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
getDescription() 14
getName() 25
getUUID() 29
getPluginVersion() 33
updateScript() 38
getEmptyDataObject() 48
getHeadCode() 95
getFooterCode() 107
showOfflineVideo($videos_id = 0) 133
profileTabName($users_id) 159
getPermissionsOptions() 164
canDownloadVideo() 170
getCanDownloadVideoReason() 181
getWatchActionButton($videos_id) 193
getGalleryActionButton($videos_id) 200
getNetflixActionButton($videos_id) 207
getLocalDownloadLink($videos_id, $format = '<string>') 215
convertVideoFileIfNotExists($videos_id) 233
getVideoInfo($videos_id) 255
getPaths($url) 353
navBarButtons() 399

Supporting PHP declarations

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

convertVideo.commandLine.php

Named symbol Source
runConvert($videos_id) 17
runLoop() 28

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