Local-first creator tool for importing YouTube videos into Qortal QDN.
The published q-app is only the frontend. Real video processing happens in a local helper
running on the creator's own computer. The helper downloads the source video with yt-dlp,
transcodes it with ffmpeg to AV1 + Opus, and then hands the prepared file back to the q-app
for QDN publishing.
dist/is the q-app frontend that a creator can publish to their own local Qortal node.server/index.tsis the local helper that must run onhttp://127.0.0.1:3001.- No VPS, domain, Caddy, or shared public helper is required.
Install these on the same computer where the creator will use the tool:
- Node.js 22+
ffmpegyt-dlp
Optional:
- browser cookies support for
yt-dlpviaYT_DLP_COOKIES_FROM_BROWSER - a custom binary path through
FFMPEG_BINorYT_DLP_BIN
Create .env from the example:
cp .env.example .envDefault frontend setting:
VITE_VIDEO_HELPER_URL=http://127.0.0.1:3001Create a helper env file from:
cp server/.env.example server/.envImportant helper settings:
PORT=3001
DEFAULT_TRANSCODE_PRESET=balanced
MAX_VIDEO_DURATION_SECONDS=7200
MAX_ACTIVE_JOBS=1
MAX_QUEUED_JOBS=2
MAX_PREPARED_DOWNLOADS=6In one terminal:
cd /home/iffiolen/VS-Code-Projects/REACT-PROJECTS/videobox-bridge
npm run serverIn another terminal:
cd /home/iffiolen/VS-Code-Projects/REACT-PROJECTS/videobox-bridge
npm run dev- Start the local helper.
- Open the q-app.
- Confirm the helper health panel shows
yt-dlpandffmpegas available. - Paste a YouTube URL.
- Choose a transcode preset:
Small,Balanced, orHigh Quality. - Approve the Qortal publish popup when the local helper finishes preparing the file.
- Verify the video appears in the dashboard.
Small: lowest storage usage for long archive importsBalanced: recommended default for most uploadsHigh Quality: larger frame size and higher bitrate for premium releases
All presets use AV1 video with Opus audio inside an MP4 output file, matching the current Qortal-oriented encoding strategy for this project.
Build the frontend:
npm run buildShare the resulting dist/ directory with creators so they can publish it to their own local
Qortal node. They must also run the helper locally before using the app.
An example systemd unit is included at:
server/videobox-helper.service.exampleIt is optional. Creators can also run npm run server manually.