Repository navigation
Technical Reference Encoder 01
Audience: developers and AI-assisted code lookup. Review date: 2026-10-29. Static inventory, not an endpoint specification, functional audit or integration-test result. Source files were read without executing application handlers. Nonempty string defaults are omitted.
Declared classes/interfaces/traits: API.
| Named function/method | Source line |
|---|---|
checkCredentials() |
11 |
canChangeQueue($queue_id) |
42 |
isAdmin() |
55 |
cleanQueueArray($queue) |
64 |
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
| Named function/method | Source line |
|---|---|
printMsg($message, $color = COLOR_RESET) |
32 |
printHeader($title) |
39 |
execCommand($command, $description = '') |
50 |
execCommandSilent($command) |
65 |
commandExists($command) |
75 |
getCommandPath($command) |
83 |
isExecutableByWwwData($path) |
91 |
getVersion($command) |
110 |
getFilePermissions($path) |
118 |
getFileOwner($path) |
128 |
isRoot() |
144 |
getOSInfo() |
153 |
ensurePip3Installed() |
169 |
pipBreakSystemPackagesFlag() |
184 |
checkCurlCffi() |
197 |
ensureCurlCffi() |
212 |
checkDeno() |
233 |
installDeno() |
281 |
fixDenoPermissions($denoStatus) |
323 |
checkNodeJS() |
366 |
installNodeJS() |
429 |
fixNodePermissions($nodeStatus) |
480 |
checkYtdlp() |
509 |
installYtdlp() |
528 |
updateYtdlp() |
568 |
ytdlpSupportsJsRuntimesFlag() |
595 |
configureYtdlpRuntime($denoStatus, $nodeStatus) |
603 |
displayStatus($name, $status, $isAccessibilityCheck = true) |
661 |
printSummary($denoStatus, $nodeStatus, $ytdlpStatus, $curlCffiStatus) |
685 |
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
DDL table references: configurations_encoder, encoder_monitor_state, encoder_queue, encoder_queue_monitor, formats, streamers, upload_queue. Historical SQL; do not execute it as a troubleshooting shortcut.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
| Named function/method | Source line |
|---|---|
humanFileSize($size, $unit = '') |
6 |
| Named function/method | Source line |
|---|---|
setPermissions($directories) |
8 |
setPermissionsRecursively($dir) |
19 |
| Named function/method | Source line |
|---|---|
h($value) |
8 |
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
JavaScript asset; inspect its page includes, functions and event handlers.
Declared classes/interfaces/traits: InstallerFailure.
| Named function/method | Source line |
|---|---|
installerRoot() |
6 |
installerMatchDirectoryOwnership($file, $directory) |
10 |
installerConfigured() |
17 |
installerSession() |
22 |
installerURL() |
29 |
installerQuote($value) |
34 |
installerPermissionHelp() |
37 |
installerBinaryAvailable($name) |
48 |
installerChecks() |
56 |
__construct($message, array $help = []) |
77 |
installerField(array $data, $key, $default = '') |
79 |
installerValidateURL($url, $label) |
86 |
installerDatabaseMessage($code) |
94 |
installerDatabaseHelp($code, array $data) |
117 |
installerValidate(array $post, $testing = false) |
143 |
installerConfig(array $data) |
186 |
installerLog($exception, $stage) |
201 |
installerSchemaTables() |
208 |
installerTable($name) |
209 |
installerStatements() |
210 |
installerCheckEmptyDatabase($mysqli) |
224 |
installerImportSchema($mysqli) |
239 |
installerVerifySchema($mysqli) |
244 |
installerSeed($mysqli, array $data) |
253 |
installerValidateStreamer(array $data) |
270 |
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
| Named function/method | Source line |
|---|---|
installerHasMissingDependencies(array $checks) |
3 |
installerUbuntuHelp() |
12 |
installerRequirementHelp($check) |
45 |
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
| Named function/method | Source line |
|---|---|
searchObjLog($dir) |
17 |
Declared classes/interfaces/traits: Configuration.
| Named function/method | Source line |
|---|---|
getSearchFieldsNames() |
13 |
getTableName() |
17 |
__construct() |
22 |
getAllowedStreamersURL() |
34 |
getDefaultPriority() |
38 |
setAllowedStreamersURL($allowedStreamersURL) |
42 |
setDefaultPriority($defaultPriority) |
46 |
getSelectedResolutions() |
50 |
setSelectedResolutions($resolutions) |
58 |
getVersion() |
65 |
setVersion($version) |
69 |
getAutodelete() |
73 |
setAutodelete($autodelete) |
77 |
currentVersionLowerThen($version) |
81 |
currentVersionGreaterThen($version) |
85 |
currentVersionEqual($version) |
89 |
rewriteConfigFile($configurationVersion = 2) |
93 |
getOldConfig() |
135 |
loadOld() |
143 |
Declared classes/interfaces/traits: Encoder.
| Named function/method | Source line |
|---|---|
getSearchFieldsNames() |
67 |
getTableName() |
72 |
isPorn($string) |
78 |
save() |
156 |
getAll($onlyMine = false, $errorOnly = false) |
217 |
getTotal($onlyMine = false) |
249 |
getId() |
270 |
getFileURI() |
275 |
getFilename() |
280 |
getStatus() |
288 |
getStatus_obs() |
293 |
getReturn_vars() |
298 |
getWorker_ppid() |
303 |
getWorker_pid() |
308 |
getPriority() |
313 |
getRetry_count() |
318 |
setRetry_count($retry_count) |
323 |
getCreated() |
328 |
getModified() |
333 |
getFormats_id() |
341 |
setFileURI($fileURI) |
346 |
setFilename($filename) |
351 |
setStatus($status, $setStreamerLog = true) |
356 |
setStatus_obs($status_obs, $setStreamerLog = true) |
390 |
initStages($total) |
409 |
nextStage($encoder, $msg) |
415 |
estimateTotalStages($encoder, $pathFileName) |
434 |
setReturn_vars($return_vars) |
455 |
setWorker_ppid($worker_ppid) |
460 |
setWorker_pid($worker_pid) |
465 |
setReturn_varsVideos_id($videos_id) |
470 |
setReturn_varsVideo_id_hash($video_id_hash) |
486 |
setPriority($priority) |
501 |
setCreated($created) |
506 |
setModified($modified) |
511 |
getTitle() |
516 |
setTitle($title) |
521 |
getVideoDownloadedLink() |
526 |
setVideoDownloadedLink($videoDownloadedLink) |
531 |
getDownloadedFileName() |
536 |
setDownloadedFileName($downloadedFileName) |
541 |
getStreamers_id() |
550 |
setStreamers_id($streamers_id) |
555 |
getOverride_status() |
560 |
setOverride_status($override_status) |
565 |
setFormats_id($formats_id) |
570 |
setFormats_idFromOrder($order) |
578 |
getNext() |
585 |
isPythonAndPytubeInstalled() |
604 |
getTitleFromLinkWithPytube($video_url) |
629 |
getDescriptionFromLinkWithPytube($video_url) |
651 |
getDurationFromLinkWithPytube($video_url) |
672 |
getThumbsFromLinkWithPytube($video_url, $returnFileName = false) |
690 |
downloadWithPytube($video_url, $filename, $action = '<string>') |
712 |
downloadFile($queue_id) |
740 |
setDownloaded($queue_id, $filePath) |
880 |
getYoutubeDl($videoURL, $queue_id, $destinationFile, $addOauthFromProvider = '') |
891 |
getYoutubeDlProgress($queue_id) |
998 |
getVideoFile($videoURL, $queue_id, $downloadedFile, $destinationFile) |
1043 |
areDownloading($status = array()) |
1082 |
areEncoding() |
1090 |
areDownloaded() |
1096 |
areTransferring() |
1100 |
getQueue($status = array(), $streamers_id = 0) |
1105 |
getAllQueue() |
1176 |
getFromFilename($filename) |
1209 |
getFromFileURI($fileURI) |
1227 |
isWorkerRunning() |
1245 |
setStatusError($queue_id, $msg, $notifyIsDone = false, $notifyStreamer = true) |
1280 |
isRetryableErrorMsg($msg) |
1306 |
requeueTransientErrors() |
1339 |
requestJobStatus($withCredentials = false) |
1388 |
getRecoveryMessage($code, $videosId = 0) |
1395 |
checkJobDestination() |
1418 |
setFailureDetails($stage, $message, $exitCode = null, $code = '') |
1468 |
recordRecovery($code, $terminal, $message, $legacy = false) |
1476 |
recoverJobAutomatically() |
1489 |
isAutoRetryPending($status_obs, $retry_count) |
1551 |
exec($cmd, &$output = array(), &$return_val = 0) |
1556 |
pnctl_strerror(int $errno): string |
1603 |
pnctl_get_last_error(): int |
1605 |
deleteQueue($notifyStreamer = false) |
1619 |
buildMetadataOnlyPostFields($format, Encoder $encoder, $resolution = '') |
1641 |
getMetadataOnlyBootstrapContext(Encoder $encoder, $format, $return_vars = null, $resolution = '') |
1708 |
mergeVideoIdentifiersFromResponse($return_vars, $response, Encoder $encoder = null) |
1729 |
getNewVideosId($return_vars = null, $resolution = '') |
1770 |
canDownloadNow() |
1788 |
canEncodeNow() |
1795 |
run($try = 0) |
1806 |
notifyVideoIsDone($fail = 0) |
2051 |
multiResolutionSend($resolution, $format, $return_vars) |
2074 |
getTmpFileBaseName($encoder_queue_id) |
2083 |
getTmpFileName($encoder_queue_id, $format, $resolution = '') |
2102 |
deleteEncodedOutputFiles($encoder_queue_id) |
2117 |
getTmpFiles($encoder_queue_id) |
2131 |
getAllFilesInfo($encoder_queue_id) |
2149 |
recheckOutputFiles() |
2159 |
verify() |
2199 |
openOutputResumeLock() |
2217 |
hasTransferredOutput() |
2223 |
dispatchOutputResume() |
2232 |
startOutputResume() |
2238 |
getTransferErrorCode($result, $depth = 0) |
2299 |
isTransferRejected($result) |
2348 |
getTransferErrorMessage($result, $videos_id = 0, $completion = false) |
2353 |
resumeOutputTransfer() |
2378 |
send($finalize = true) |
2470 |
sendFile($file, $return_vars, $format, Encoder $encoder = null, $resolution = "'<string>''<string>'") |
2633 |
isUploadLimitMsg($text) |
2805 |
sendFileChunk($file, $return_vars, $format, $encoder = null, $resolution = "", $try = 0, $fileId = null, $startChunk = 0) |
2814 |
sendFileToDownload($file, $return_vars, $format, Encoder $encoder = null, $resolution = "", $try = 0) |
3024 |
sendImages($file, $return_vars, Encoder $encoder) |
3113 |
sendRawVideo($file, $return_vars, $encoder) |
3176 |
sendSpectrumFromMP3($file, $return_vars, $encoder) |
3210 |
sendToStreamer($target, $postFields, $return_vars = false, $encoder = null) |
3242 |
sendToStreamerWithDeadline($target, $postFields, $return_vars, $encoder, $deadline) |
3247 |
sendToStreamerRequest($target, $postFields, $return_vars, $encoder, $deadline) |
3252 |
getVideoConversionStatus($encoder_queue_id) |
3478 |
parseProgress($content) |
3490 |
getDurationFromFile($file) |
3596 |
getImage($pathFileName, $seconds = 5) |
3672 |
getRawVideo($pathFileName) |
3716 |
getSpectrum($pathFileName) |
3758 |
getGifImage($pathFileName, $seconds = 5, $howLong = 3) |
3789 |
getWebpImage($pathFileName, $seconds = 5, $howLong = 3) |
3857 |
delete() |
3902 |
deleteOriginal() |
3960 |
checkList() |
3976 |
parseDurationToSeconds($str) |
3981 |
formatDuration($str) |
3991 |
parseSecondsToDuration($int) |
4006 |
getReverseVideosJsonListFromLink($link, $streamers_id, $addOauthFromProvider = '') |
4029 |
getTitleFromLink($link, $streamers_id, $addOauthFromProvider = '') |
4050 |
getDurationFromLink($link, $streamers_id, $addOauthFromProvider = '') |
4084 |
getThumbsFromLink($link, $streamers_id, $returnFileName = false, $addOauthFromProvider = '') |
4111 |
getDescriptionFromLink($link, $streamers_id, $addOauthFromProvider = '') |
4160 |
streamerHasOauth($OauthFromProvider, $streamers_id = 0) |
4189 |
getFriendlyYtdlpError($outputText) |
4215 |
ytdlSupportsJsRuntimesFlag($ytdlBin) |
4232 |
getYtdlpErrorFromFile($progressFile) |
4249 |
checkJSRuntimeAvailable() |
4317 |
getYoutubeDlStrategies($addOauthFromProvider, $streamers_id, $tmpfname, $videoURL) |
4454 |
getYouTubeDLCommand($addOauthFromProvider = '', $streamers_id = 0, $forceYoutubeDL = false) |
4555 |
setStreamerLog($encoder_queue_id, $msg, $type) |
4645 |
getVideosId($encoder_queue_id) |
4670 |
stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) |
4703 |
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