I’m trying to do some testing of automatic transcription on my local machine (Ubuntu 24.04.4 LTS), but I can’t get it to work, neither with engine set to whisper-ctranslate2 or openai-whisper. Some help would be greatly appreciated.
When using whisper-ctranslate2, I first get an error message saying that libcublas.so.12 is missing. After I install libcublas12, i get « CUBLAS_STATUS_NOT_SUPPORTED ».
For openai-whisper, there seem to be some problem installing some dependency?
whisper-ctranslate2 before installation of libcublas12
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "escapedCommand": "/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/kNM9XjoMY9kFUYvq2ZBhqB",
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "cwd": "/var/www/peertube/versions/peertube-v8.2.1",
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "durationMs": 5659.689378,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "failed": false,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "timedOut": false,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "isCanceled": false,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "isGracefullyCanceled": false,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "isTerminated": false,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "isMaxBuffer": false,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "isForcefullyTerminated": false,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "exitCode": 0,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "stdout": "Detecting language using up to the first 30 seconds. Use `--language` to specify the language\nTranscription results written to '/var/www/peertube/storage/tmp/transcription/kNM9XjoMY9kFUYvq2ZBhqB' directory",
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "stderr": "Error: unable to process file: /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 with exception 'Library libcublas.so.12 is not found or cannot be loaded'",
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "stdio": [
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: null,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "Detecting language using up to the first 30 seconds. Use `--language` to specify the language\nTranscription results written to '/var/www/peertube/storage/tmp/transcription/kNM9XjoMY9kFUYvq2ZBhqB' directory",
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "Error: unable to process file: /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 with exception 'Library libcublas.so.12 is not found or cannot be loaded'"
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: ],
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "ipcOutput": [],
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "pipedFrom": []
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: },
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "options": {
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "stdin": "inherit",
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "preferLocal": true,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "env": {
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "PYTHONPATH": "/var/www/peertube/storage/bin/pip"
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: }
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: }
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: }
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:11:37.132 debug: Executed SQL request - Executing (default): UPDATE
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "videoJobInfo"
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: SET
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "pendingTranscription" = GREATEST("videoJobInfo"."pendingTranscription" - 1, 0),
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "updatedAt" = NOW()
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: FROM "video"
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: WHERE
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "video"."id" = "videoJobInfo"."videoId" AND "video"."uuid" = $1
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: RETURNING
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "pendingTranscription";
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:11:37.134 error: Cannot execute job 14 in queue video-transcription. {
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "payload": {
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "videoUUID": "af2940a8-66e6-448a-b15a-4ed239b40c29"
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: },
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "err": {
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "stack": "Error: ENOENT: no such file or directory, open '/var/www/peertube/storage/tmp/transcription/kNM9XjoMY9kFUYvq2ZBhqB/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.json'",
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "message": "ENOENT: no such file or directory, open '/var/www/peertube/storage/tmp/transcription/kNM9XjoMY9kFUYvq2ZBhqB/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.json'",
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "errno": -2,
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "code": "ENOENT",
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "syscall": "open",
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: "path": "/var/www/peertube/storage/tmp/transcription/kNM9XjoMY9kFUYvq2ZBhqB/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.json"
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: }
Jul 01 09:11:37 BW6P6F4RA peertube[70506]: }
Jul 01 09:11:53 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:11:53.128 debug: Running update videos scheduler
Jul 01 09:11:53 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:11:53.132 debug: Running update token session scheduler
Jul 01 09:11:53 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:11:53.138 debug: Executed SQL request - Executing (default): UPDATE "oAuthToken" SET "lastActivityDate"=$1,"lastActivityIP"=$2,"lastActivityDevice"=$3,"updatedAt"=$4 WHERE "id" = $5
Jul 01 09:11:53 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:11:53.186 debug: Executed SQL request - Executing (default): SELECT "id", "uuid", "type", "payload", "privatePayload", "state", "failures", "error", "priority", "processingJobToken", "progress", "startedAt", "finishedAt", "dependsOnRunnerJobId", "runnerId", "createdAt", "updatedAt" FROM "runnerJob" AS "RunnerJobModel" WHERE "RunnerJobModel"."type" IN ('vod-audio-merge-transcoding', 'vod-hls-transcoding', 'vod-web-video-transcoding') AND "RunnerJobModel"."state" = 2 AND "RunnerJobModel"."updatedAt" < '2026-07-01 07:09:53.185 +00:00';
Jul 01 09:11:53 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:11:53.188 debug: Executed SQL request - Executing (default): SELECT "id", "uuid", "type", "payload", "privatePayload", "state", "failures", "error", "priority", "processingJobToken", "progress", "startedAt", "finishedAt", "dependsOnRunnerJobId", "runnerId", "createdAt", "updatedAt" FROM "runnerJob" AS "RunnerJobModel" WHERE "RunnerJobModel"."type" IN ('live-rtmp-hls-transcoding') AND "RunnerJobModel"."state" = 2 AND "RunnerJobModel"."updatedAt" < '2026-07-01 07:11:23.187 +00:00';
Jul 01 09:11:53 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:11:53.188 debug: Executed SQL request - Executing (default): SELECT "id", "uuid", "type", "payload", "privatePayload", "state", "failures", "error", "priority", "processingJobToken", "progress", "startedAt", "finishedAt", "dependsOnRunnerJobId", "runnerId", "createdAt", "updatedAt" FROM "runnerJob" AS "RunnerJobModel" WHERE "RunnerJobModel"."type" IN ('video-transcription') AND "RunnerJobModel"."state" = 2 AND "RunnerJobModel"."updatedAt" < '2026-07-01 07:09:53.188 +00:00';
Jul 01 09:11:53 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:11:53.189 debug: Executed SQL request - Executing (default): SELECT "id", "uuid", "type", "payload", "privatePayload", "state", "failures", "error", "priority", "processingJobToken", "progress", "startedAt", "finishedAt", "dependsOnRunnerJobId", "runnerId", "createdAt", "updatedAt" FROM "runnerJob" AS "RunnerJobModel" WHERE "RunnerJobModel"."type" IN ('video-studio-transcoding') AND "RunnerJobModel"."state" = 2 AND "RunnerJobModel"."updatedAt" < '2026-07-01 07:09:53.189 +00:00';
Jul 01 09:12:23 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:23.249 debug: Executed SQL request - Executing (default): SELECT "id", "uuid", "type", "payload", "privatePayload", "state", "failures", "error", "priority", "processingJobToken", "progress", "startedAt", "finishedAt", "dependsOnRunnerJobId", "runnerId", "createdAt", "updatedAt" FROM "runnerJob" AS "RunnerJobModel" WHERE "RunnerJobModel"."type" IN ('vod-audio-merge-transcoding', 'vod-hls-transcoding', 'vod-web-video-transcoding') AND "RunnerJobModel"."state" = 2 AND "RunnerJobModel"."updatedAt" < '2026-07-01 07:10:23.186 +00:00';
Jul 01 09:12:23 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:23.263 debug: Executed SQL request - Executing (default): SELECT "id", "uuid", "type", "payload", "privatePayload", "state", "failures", "error", "priority", "processingJobToken", "progress", "startedAt", "finishedAt", "dependsOnRunnerJobId", "runnerId", "createdAt", "updatedAt" FROM "runnerJob" AS "RunnerJobModel" WHERE "RunnerJobModel"."type" IN ('live-rtmp-hls-transcoding') AND "RunnerJobModel"."state" = 2 AND "RunnerJobModel"."updatedAt" < '2026-07-01 07:11:53.262 +00:00';
Jul 01 09:12:23 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:23.264 debug: Executed SQL request - Executing (default): SELECT "id", "uuid", "type", "payload", "privatePayload", "state", "failures", "error", "priority", "processingJobToken", "progress", "startedAt", "finishedAt", "dependsOnRunnerJobId", "runnerId", "createdAt", "updatedAt" FROM "runnerJob" AS "RunnerJobModel" WHERE "RunnerJobModel"."type" IN ('video-transcription') AND "RunnerJobModel"."state" = 2 AND "RunnerJobModel"."updatedAt" < '2026-07-01 07:10:23.263 +00:00';
Jul 01 09:12:23 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:23.265 debug: Executed SQL request - Executing (default): SELECT "id", "uuid", "type", "payload", "privatePayload", "state", "failures", "error", "priority", "processingJobToken", "progress", "startedAt", "finishedAt", "dependsOnRunnerJobId", "runnerId", "createdAt", "updatedAt" FROM "runnerJob" AS "RunnerJobModel" WHERE "RunnerJobModel"."type" IN ('video-studio-transcoding') AND "RunnerJobModel"."state" = 2 AND "RunnerJobModel"."updatedAt" < '2026-07-01 07:10:23.265 +00:00';
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:37.179 info: Processing video transcription in job 14.
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:37.195 debug: Executed SQL request - Executing (default): SELECT "video".* FROM (SELECT * FROM "video" WHERE uuid = 'af2940a8-66e6-448a-b15a-4ed239b40c29' LIMIT 1) AS "video"
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:37.216 debug: Locked files of af2940a8-66e6-448a-b15a-4ed239b40c29.
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:37.219 debug: Executed SQL request - Executing (default): SELECT "video".*, "ThumbnailsJSON"."thumbnails" AS "ThumbnailsJSON", "VideoBlacklist"."id" AS "VideoBlacklist.id", "VideoBlacklist"."reason" AS "VideoBlacklist.reason", "VideoBlacklist"."unfederated" AS "VideoBlacklist.unfederated", "VideoChannel"."id" AS "VideoChannel.id", "VideoChannel"."name" AS "VideoChannel.name", "VideoChannel"."description" AS "VideoChannel.description", "VideoChannel"."accountId" AS "VideoChannel.accountId", "VideoChannel"."support" AS "VideoChannel.support", "VideoChannel"."createdAt" AS "VideoChannel.createdAt", "VideoChannel"."updatedAt" AS "VideoChannel.updatedAt", "VideoChannel->Actor"."id" AS "VideoChannel.Actor.id", "VideoChannel->Actor"."preferredUsername" AS "VideoChannel.Actor.preferredUsername", "VideoChannel->Actor"."url" AS "VideoChannel.Actor.url", "VideoChannel->Actor"."serverId" AS "VideoChannel.Actor.serverId", "VideoChannel->Actor"."accountId" AS "VideoChannel.Actor.accountId", "VideoChannel->Actor"."videoChannelId" AS "VideoChannel.Actor.videoChannelId", "VideoChannel->Actor"."type" AS "VideoChannel.Actor.type", "VideoChannel->Actor"."followersCount" AS "VideoChannel.Actor.followersCount", "VideoChannel->Actor"."followingCount" AS "VideoChannel.Actor.followingCount", "VideoChannel->Actor"."inboxUrl" AS "VideoChannel.Actor.inboxUrl", "VideoChannel->Actor"."outboxUrl" AS "VideoChannel.Actor.outboxUrl", "VideoChannel->Actor"."sharedInboxUrl" AS "VideoChannel.Actor.sharedInboxUrl", "VideoChannel->Actor"."followersUrl" AS "VideoChannel.Actor.followersUrl", "VideoChannel->Actor"."followingUrl" AS "VideoChannel.Actor.followingUrl", "VideoChannel->Actor"."remoteCreatedAt" AS "VideoChannel.Actor.remoteCreatedAt", "VideoChannel->Actor"."createdAt" AS "VideoChannel.Actor.createdAt", "VideoChannel->Actor"."updatedAt" AS "VideoChannel.Actor.updatedAt", "VideoChannel->Actor->AvatarsJSON"."Avatars" AS "VideoChannel.Actor.AvatarsJSON", "VideoChannel->Actor->Server"."id" AS "VideoChannel.Actor.Server.id", "VideoChannel->Actor->Server"."host" AS "VideoChannel.Actor.Server.host", "VideoChannel->Account"."id" AS "VideoChannel.Account.id", "VideoChannel->Account"."name" AS "VideoChannel.Account.name", "VideoChannel->Account"."description" AS "VideoChannel.Account.description", "VideoChannel->Account"."userId" AS "VideoChannel.Account.userId", "VideoChannel->Account"."createdAt" AS "VideoChannel.Account.createdAt", "VideoChannel->Account"."updatedAt" AS "VideoChannel.Account.updatedAt", "VideoChannel->Account->Actor"."id" AS "VideoChannel.Account.Actor.id", "VideoChannel->Account->Actor"."preferredUsername" AS "VideoChannel.Account.Actor.preferredUsername", "VideoChannel->Account->Actor"."url" AS "VideoChannel.Account.Actor.url", "VideoChannel->Account->Actor"."serverId" AS "VideoChannel.Account.Actor.serverId", "VideoChannel->Account->Actor"."accountId" AS "VideoChannel.Account.Actor.accountId", "VideoChannel->Account->Actor"."videoChannelId" AS "VideoChannel.Account.Actor.videoChannelId", "VideoChannel->Account->Actor"."type" AS "VideoChannel.Account.Actor.type", "VideoChannel->Account->Actor"."followersCount" AS "VideoChannel.Account.Actor.followersCount", "VideoChannel->Account->Actor"."followingCount" AS "VideoChannel.Account.Actor.followingCount", "VideoChannel->Account->Actor"."inboxUrl" AS "VideoChannel.Account.Actor.inboxUrl", "VideoChannel->Account->Actor"."outboxUrl" AS "VideoChannel.Account.Actor.outboxUrl", "VideoChannel->Account->Actor"."sharedInboxUrl" AS "VideoChannel.Account.Actor.sharedInboxUrl", "VideoChannel->Account->Actor"."followersUrl" AS "VideoChannel.Account.Actor.followersUrl", "VideoChannel->Account->Actor"."followingUrl" AS "VideoChannel.Account.Actor.followingUrl", "VideoChannel->Account->Actor"."remoteCreatedAt" AS "VideoChannel.Account.Actor.remoteCreatedAt", "VideoChannel->Account->Actor"."createdAt" AS "VideoChannel.Account.Actor.createdAt", "VideoChannel->Account->Actor"."updatedAt" AS "VideoChannel.Account.Actor.updatedAt", "VideoChannel->Account->Actor->AvatarsJSON"."Avatars" AS "VideoChannel.Account.Actor.AvatarsJSON", "VideoChannel->Account->Actor->Server"."id" AS "VideoChannel.Account.Actor.Server.id", "VideoChannel->Account->Actor->Server"."host" AS "VideoChannel.Account.Actor.Server.host", "Tags"."id" AS "Tags.id", "Tags"."name" AS "Tags.name", "Tags->VideoTagModel"."videoId" AS "Tags.VideoTagModel.videoId", "Tags->VideoTagModel"."tagId" AS "Tags.VideoTagModel.tagId", "Tags->VideoTagModel"."createdAt" AS "Tags.VideoTagModel.createdAt", "Tags->VideoTagModel"."updatedAt" AS "Tags.VideoTagModel.updatedAt", "ScheduleVideoUpdate"."id" AS "ScheduleVideoUpdate.id", "ScheduleVideoUpdate"."updateAt" AS "ScheduleVideoUpdate.updateAt", "ScheduleVideoUpdate"."privacy" AS "ScheduleVideoUpdate.privacy", "ScheduleVideoUpdate"."videoId" AS "ScheduleVideoUpdate.videoId", "ScheduleVideoUpdate"."createdAt" AS "ScheduleVideoUpdate.createdAt", "ScheduleVideoUpdate"."updatedAt" AS "ScheduleVideoUpdate.updatedAt", "VideoLive"."id" AS "VideoLive.id", "VideoLive"."streamKey" AS "VideoLive.streamKey", "VideoLive"."saveReplay" AS "VideoLive.saveReplay", "VideoLive"."permanentLive" AS "VideoLive.permanentLive", "VideoLive"."dvrWindow" AS "VideoLive.dvrWindow", "VideoLive"."latencyMode" AS "VideoLive.latencyMode", "VideoLive"."videoId" AS "VideoLive.videoId", "VideoLive"."replaySettingId" AS "VideoLive.replaySettingId", "VideoLive"."createdAt" AS "VideoLive.createdAt", "VideoLive"."updatedAt" AS "VideoLive.updatedAt", "VideoLive->VideoLiveSchedules"."id" AS "VideoLive.VideoLiveSchedules.id", "VideoLive->VideoLiveSchedules"."startAt" AS "VideoLive.VideoLiveSchedules.startAt", "VideoLive->VideoLiveSchedules"."createdAt" AS "VideoLive.VideoLiveSchedules.createdAt", "VideoLive->VideoLiveSchedules"."updatedAt" AS "VideoLive.VideoLiveSchedules.updatedAt" FROM (SELECT * FROM "video" WHERE uuid = 'af2940a8-66e6-448a-b15a-4ed239b40c29' LIMIT 1) AS "video" LEFT JOIN LATERAL ( SELECT json_agg( jsonb_build_object( 'id', "id", 'filename', "filename", 'fileUrl', "fileUrl", 'width', "width", 'height', "height", 'aspectRatio', "aspectRatio", 'cached', "cached", 'automaticallyGenerated', "automaticallyGenerated", 'videoId', "videoId", 'videoPlaylistId', "videoPlaylistId", 'createdAt', "createdAt", 'updatedAt', "updatedAt" ) ) AS "thumbnails" FROM "thumbnail" WHERE "videoId" = "video"."id") AS "ThumbnailsJSON" ON TRUE LEFT OUTER JOIN "videoBlacklist" AS "VideoBlacklist" ON "video"."id" = "VideoBlacklist"."videoId" INNER JOIN "videoChannel" AS "VideoChannel" ON "video"."channelId" = "VideoChannel"."id" INNER JOIN "actor" AS "VideoChannel->Actor" ON "VideoChannel"."id" = "VideoChannel->Actor"."videoChannelId" LEFT OUTER JOIN "server" AS "VideoChannel->Actor->Server" ON "VideoChannel->Actor"."serverId" = "VideoChannel->Actor->Server"."id" LEFT JOIN LATERAL (SELECT json_agg( jsonb_build_object( 'id', "id", 'width', "width", 'filename', "filename", 'type', "type", 'fileUrl', "fileUrl", 'cached', "cached", 'createdAt', "createdAt", 'updatedAt', "updatedAt", 'height', "height", 'width', "width", 'type', "type" )) AS "Avatars" FROM "actorImage" WHERE "actorId" = "VideoChannel->Actor"."id" AND "type" = 1) AS "VideoChannel->Actor->AvatarsJSON" ON TRUE INNER JOIN "account" AS "VideoChannel->Account" ON "VideoChannel"."accountId" = "VideoChannel->Account"."id" INNER JOIN "actor" AS "VideoChannel->Account->Actor" ON "VideoChannel->Account"."id" = "VideoChannel->Account->Actor"."accountId" LEFT OUTER JOIN "server" AS "VideoChannel->Account->Actor->Server" ON "VideoChannel->Account->Actor"."serverId" = "VideoChannel->Account->Actor->Server"."id" LEFT JOIN LATERAL (SELECT json_agg( jsonb_build_object( 'id', "id", 'width', "width", 'filename', "filename", 'type', "type", 'fileUrl', "fileUrl", 'cached', "cached", 'createdAt', "createdAt", 'updatedAt', "updatedAt", 'height', "height", 'width', "width", 'type', "type" )) AS "Avatars" FROM "actorImage" WHERE "actorId" = "VideoChannel->Account->Actor"."id" AND "type" = 1) AS "VideoChannel->Account->Actor->AvatarsJSON" ON TRUE LEFT OUTER JOIN ("videoTag" AS "Tags->VideoTagModel" INNER JOIN "tag" AS "Tags" ON "Tags"."id" = "Tags->VideoTagModel"."tagId") ON "video"."id" = "Tags->VideoTagModel"."videoId" LEFT OUTER JOIN "scheduleVideoUpdate" AS "ScheduleVideoUpdate" ON "video"."id" = "ScheduleVideoUpdate"."videoId" LEFT OUTER JOIN "videoLive" AS "VideoLive" ON "video"."id" = "VideoLive"."videoId" LEFT OUTER JOIN "videoLiveSchedule" AS "VideoLive->VideoLiveSchedules" ON "VideoLive->VideoLiveSchedules"."liveVideoId" = "VideoLive"."id" ORDER BY "Tags"."name" ASC
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:37.234 debug: Executed SQL request - Executing (default): SELECT "video"."id", "VideoFiles"."id" AS "VideoFiles.id", "VideoFiles"."createdAt" AS "VideoFiles.createdAt", "VideoFiles"."updatedAt" AS "VideoFiles.updatedAt", "VideoFiles"."resolution" AS "VideoFiles.resolution", "VideoFiles"."size" AS "VideoFiles.size", "VideoFiles"."extname" AS "VideoFiles.extname", "VideoFiles"."filename" AS "VideoFiles.filename", "VideoFiles"."fileUrl" AS "VideoFiles.fileUrl", "VideoFiles"."torrentFilename" AS "VideoFiles.torrentFilename", "VideoFiles"."torrentUrl" AS "VideoFiles.torrentUrl", "VideoFiles"."infoHash" AS "VideoFiles.infoHash", "VideoFiles"."fps" AS "VideoFiles.fps", "VideoFiles"."metadataUrl" AS "VideoFiles.metadataUrl", "VideoFiles"."videoStreamingPlaylistId" AS "VideoFiles.videoStreamingPlaylistId", "VideoFiles"."videoId" AS "VideoFiles.videoId", "VideoFiles"."width" AS "VideoFiles.width", "VideoFiles"."height" AS "VideoFiles.height", "VideoFiles"."formatFlags" AS "VideoFiles.formatFlags", "VideoFiles"."streams" AS "VideoFiles.streams", "VideoFiles"."storage" AS "VideoFiles.storage" FROM "video" LEFT JOIN "videoFile" AS "VideoFiles" ON "VideoFiles"."videoId" = "video"."id" WHERE uuid = 'af2940a8-66e6-448a-b15a-4ed239b40c29'
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:37.235 debug: Executed SQL request - Executing (default): SELECT "video"."id", "VideoStreamingPlaylists"."id" AS "VideoStreamingPlaylists.id", "VideoStreamingPlaylists"."playlistUrl" AS "VideoStreamingPlaylists.playlistUrl", "VideoStreamingPlaylists"."playlistFilename" AS "VideoStreamingPlaylists.playlistFilename", "VideoStreamingPlaylists"."type" AS "VideoStreamingPlaylists.type", "VideoStreamingPlaylists"."p2pMediaLoaderInfohashes" AS "VideoStreamingPlaylists.p2pMediaLoaderInfohashes", "VideoStreamingPlaylists"."p2pMediaLoaderPeerVersion" AS "VideoStreamingPlaylists.p2pMediaLoaderPeerVersion", "VideoStreamingPlaylists"."segmentsSha256Filename" AS "VideoStreamingPlaylists.segmentsSha256Filename", "VideoStreamingPlaylists"."segmentsSha256Url" AS "VideoStreamingPlaylists.segmentsSha256Url", "VideoStreamingPlaylists"."videoId" AS "VideoStreamingPlaylists.videoId", "VideoStreamingPlaylists"."createdAt" AS "VideoStreamingPlaylists.createdAt", "VideoStreamingPlaylists"."updatedAt" AS "VideoStreamingPlaylists.updatedAt", "VideoStreamingPlaylists"."storage" AS "VideoStreamingPlaylists.storage", "VideoStreamingPlaylists->VideoFiles"."id" AS "VideoStreamingPlaylists.VideoFiles.id", "VideoStreamingPlaylists->VideoFiles"."createdAt" AS "VideoStreamingPlaylists.VideoFiles.createdAt", "VideoStreamingPlaylists->VideoFiles"."updatedAt" AS "VideoStreamingPlaylists.VideoFiles.updatedAt", "VideoStreamingPlaylists->VideoFiles"."resolution" AS "VideoStreamingPlaylists.VideoFiles.resolution", "VideoStreamingPlaylists->VideoFiles"."size" AS "VideoStreamingPlaylists.VideoFiles.size", "VideoStreamingPlaylists->VideoFiles"."extname" AS "VideoStreamingPlaylists.VideoFiles.extname", "VideoStreamingPlaylists->VideoFiles"."filename" AS "VideoStreamingPlaylists.VideoFiles.filename", "VideoStreamingPlaylists->VideoFiles"."fileUrl" AS "VideoStreamingPlaylists.VideoFiles.fileUrl", "VideoStreamingPlaylists->VideoFiles"."torrentFilename" AS "VideoStreamingPlaylists.VideoFiles.torrentFilename", "VideoStreamingPlaylists->VideoFiles"."torrentUrl" AS "VideoStreamingPlaylists.VideoFiles.torrentUrl", "VideoStreamingPlaylists->VideoFiles"."infoHash" AS "VideoStreamingPlaylists.VideoFiles.infoHash", "VideoStreamingPlaylists->VideoFiles"."fps" AS "VideoStreamingPlaylists.VideoFiles.fps", "VideoStreamingPlaylists->VideoFiles"."metadataUrl" AS "VideoStreamingPlaylists.VideoFiles.metadataUrl", "VideoStreamingPlaylists->VideoFiles"."videoStreamingPlaylistId" AS "VideoStreamingPlaylists.VideoFiles.videoStreamingPlaylistId", "VideoStreamingPlaylists->VideoFiles"."videoId" AS "VideoStreamingPlaylists.VideoFiles.videoId", "VideoStreamingPlaylists->VideoFiles"."width" AS "VideoStreamingPlaylists.VideoFiles.width", "VideoStreamingPlaylists->VideoFiles"."height" AS "VideoStreamingPlaylists.VideoFiles.height", "VideoStreamingPlaylists->VideoFiles"."formatFlags" AS "VideoStreamingPlaylists.VideoFiles.formatFlags", "VideoStreamingPlaylists->VideoFiles"."streams" AS "VideoStreamingPlaylists.VideoFiles.streams", "VideoStreamingPlaylists->VideoFiles"."storage" AS "VideoStreamingPlaylists.VideoFiles.storage" FROM "video" LEFT JOIN "videoStreamingPlaylist" AS "VideoStreamingPlaylists" ON "VideoStreamingPlaylists"."videoId" = "video"."id" LEFT JOIN "videoFile" AS "VideoStreamingPlaylists->VideoFiles" ON "VideoStreamingPlaylists->VideoFiles"."videoStreamingPlaylistId" = "VideoStreamingPlaylists"."id" WHERE uuid = 'af2940a8-66e6-448a-b15a-4ed239b40c29'
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:37.243 info: Running transcription for af2940a8-66e6-448a-b15a-4ed239b40c29 in /var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:37.245 debug: /var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t {
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: "type": "command",
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: "escapedCommand": "/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t",
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: "commandId": "4",
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: "piped": false,
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: "options": {
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: "stdin": "inherit",
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: "preferLocal": true,
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: "env": {
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: "PYTHONPATH": "/var/www/peertube/storage/bin/pip"
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:37 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:42.425 debug: Error: unable to process file: /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 with exception 'Library libcublas.so.12 is not found or cannot be loaded' {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "type": "output",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "escapedCommand": "/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "commandId": "4",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "piped": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "options": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "stdin": "inherit",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "preferLocal": true,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "env": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "PYTHONPATH": "/var/www/peertube/storage/bin/pip"
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:42.457 debug: Detecting language using up to the first 30 seconds. Use `--language` to specify the language {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "type": "output",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "escapedCommand": "/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "commandId": "4",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "piped": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "options": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "stdin": "inherit",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "preferLocal": true,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "env": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "PYTHONPATH": "/var/www/peertube/storage/bin/pip"
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:42.457 debug: Transcription results written to '/var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t' directory {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "type": "output",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "escapedCommand": "/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "commandId": "4",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "piped": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "options": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "stdin": "inherit",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "preferLocal": true,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "env": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "PYTHONPATH": "/var/www/peertube/storage/bin/pip"
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:42.604 debug: (done in 5.3s) {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "type": "duration",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "escapedCommand": "/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "commandId": "4",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "piped": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "result": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "command": "/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "escapedCommand": "/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "cwd": "/var/www/peertube/versions/peertube-v8.2.1",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "durationMs": 5359.136881,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "failed": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "timedOut": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "isCanceled": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "isGracefullyCanceled": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "isTerminated": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "isMaxBuffer": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "isForcefullyTerminated": false,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "exitCode": 0,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "stdout": "Detecting language using up to the first 30 seconds. Use `--language` to specify the language\nTranscription results written to '/var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t' directory",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "stderr": "Error: unable to process file: /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 with exception 'Library libcublas.so.12 is not found or cannot be loaded'",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "stdio": [
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: null,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "Detecting language using up to the first 30 seconds. Use `--language` to specify the language\nTranscription results written to '/var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t' directory",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "Error: unable to process file: /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 with exception 'Library libcublas.so.12 is not found or cannot be loaded'"
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: ],
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "ipcOutput": [],
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "pipedFrom": []
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: },
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "options": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "stdin": "inherit",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "preferLocal": true,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "env": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "PYTHONPATH": "/var/www/peertube/storage/bin/pip"
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: }
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:42.605 debug: Executed SQL request - Executing (default): UPDATE
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "videoJobInfo"
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: SET
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "pendingTranscription" = GREATEST("videoJobInfo"."pendingTranscription" - 1, 0),
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "updatedAt" = NOW()
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: FROM "video"
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: WHERE
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "video"."id" = "videoJobInfo"."videoId" AND "video"."uuid" = $1
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: RETURNING
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "pendingTranscription";
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: [localhost:9000] 2026-07-01 09:12:42.607 error: Cannot execute job 14 in queue video-transcription. {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "payload": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "videoUUID": "af2940a8-66e6-448a-b15a-4ed239b40c29"
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: },
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "err": {
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "stack": "Error: ENOENT: no such file or directory, open '/var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.json'",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "message": "ENOENT: no such file or directory, open '/var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.json'",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "errno": -2,
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "code": "ENOENT",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "syscall": "open",
Jul 01 09:12:42 BW6P6F4RA peertube[70506]: "path": "/var/www/peertube/storage/tmp/transcription/oQJxK7xrSBajMEvdRACz9t/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.json"
After installing: libcublas12
{"type":"duration","escapedCommand":"/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/ggcX7d17yYuCskFNumu6NK","commandId":"1","timestamp":"2026-07-01T11:48:59.169Z","piped":false,"result":{"command":"/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/ggcX7d17yYuCskFNumu6NK","escapedCommand":"/var/www/peertube/storage/bin/pip/bin/whisper-ctranslate2 /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 --model small --word_timestamps True --vad_filter true --vad_min_silence_duration_ms 5000 --output_format all --output_dir /var/www/peertube/storage/tmp/transcription/ggcX7d17yYuCskFNumu6NK","cwd":"/var/www/peertube/versions/peertube-v8.2.1","durationMs":3158.161475,"failed":false,"timedOut":false,"isCanceled":false,"isGracefullyCanceled":false,"isTerminated":false,"isMaxBuffer":false,"isForcefullyTerminated":false,"exitCode":0,"stdout":"Detecting language using up to the first 30 seconds. Use `--language` to specify the language\nTranscription results written to '/var/www/peertube/storage/tmp/transcription/ggcX7d17yYuCskFNumu6NK' directory","stderr":"Error: unable to process file: /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 with exception 'cuBLAS failed with status CUBLAS_STATUS_NOT_SUPPORTED'","stdio":[null,"Detecting language using up to the first 30 seconds. Use `--language` to specify the language\nTranscription results written to '/var/www/peertube/storage/tmp/transcription/ggcX7d17yYuCskFNumu6NK' directory","Error: unable to process file: /var/www/peertube/storage/streaming-playlists/hls/af2940a8-66e6-448a-b15a-4ed239b40c29/3ea031d5-f39f-4c9c-b63b-fcfcc96c92a7-1080-fragmented.mp4 with exception 'cuBLAS failed with status CUBLAS_STATUS_NOT_SUPPORTED'"],"ipcOutput":[],"pipedFrom":[]},"options":{"stdin":"inherit","preferLocal":true,"env":{"PYTHONPATH":"/var/www/peertube/storage/bin/pip"}},"level":"debug","message":"(done in 3.1s)","label":"localhost:9000"}