iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
외장 하드디스크를 카탈로그·썸네일 탐색·영상 검토·중복 파일 찾기·웹 기반 오픈소스 로컬 관리
Cataloga discos duros externos, explora miniaturas, revisa videos, encuentra duplicados probables y gestiona archivos locales con una web privada y open source y un Companion para Windows.
미디어TypeScript · CSSGitHub @reiterstahl온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
VideoCAT es un catálogo privado para videos guardados en discos duros externos. Está pensado para colecciones distribuidas en muchos discos que no siempre están conectados.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Video CAT Catálogo privado para videos repartidos en discos externos, con un Companion para Windows. VideoCAT indexa los videos de tus discos externos —aunque casi nunca estén conectados— y te deja buscarlos, revisarlos, encontrar duplicados, reproducirlos a distancia y liberar espacio desde el navegador o el móvil. Los videos nunca salen de tus discos: el servidor guarda solo metadatos, rutas relativas y miniaturas.README 전문 보기 ↗
VideoCAT indexes the videos on your external drives — even ones that are rarely plugged in — and lets you search, review, find duplicates, play remotely and free up space from a browser or your phone. Your videos never leave your drives: the server only stores metadata, relative paths and thumbnails. Videos kept in S3-compatible buckets (MinIO, Garage, RustFS, AWS S3, Cloudflare R2…) can be catalogued too; for those, the server itself reads the bucket (S3 buckets).
[!TIP] ⭐ If VideoCAT is useful to you, star it on GitHub: it helps more people with collections on external drives find it.
[!WARNING] VideoCAT can physically delete files on Windows: when you mark a video for deletion, the Companion removes it once the right drive is connected. Before using it with important footage, read Review and safe deletion.
flowchart LR
browser["Browser or phone"] --> web
subgraph server_host["Server · Docker Compose"]
web["web<br/>Nginx + React"] --> api["server<br/>Fastify API"]
api --> db[("PostgreSQL")]
api --> thumbs[("Thumbnails")]
scanner["scanner (optional)<br/>FFmpeg"] --> db
scanner --> thumbs
end
api -. "S3 API" .-> buckets[("S3 buckets")]
scanner -. "S3 API" .-> buckets
subgraph windows["Windows PC"]
companion["VideoCAT Companion<br/>tray app"] --> disks[("External drives")]
end
companion -- "HTTPS and outbound tunnel" --> api
browser -. "local actions with token" .-> companion
| Piece | What it does |
|---|---|
| web | Serves the React app and proxies the API and thumbnails. It is the only thing you expose through your reverse proxy. |
| server | API for login, catalog, review, duplicates, audit and the Companion tunnel. Applies database migrations on start. |
| postgres | Catalog database, reachable only on the internal Docker network. |
| scanner | Optional (--profile s3): the server's code plus FFmpeg. Scans S3 buckets and deletes their marked videos on request. |
| Companion | Windows tray app: detects drives, scans with FFmpeg, uploads metadata and thumbnails, processes deletions and copies, serves remote playback through an outbound tunnel (no open ports) and, optionally, reads the drives' health (SMART). |
Ctrl K, active filter chips and a detail panel; the result count shows the total size of every match..videocat-disk.json, so they are recognized even when Windows changes the drive letter.testing001) and find files with a similar name on every drive, ignoring case, accents, dots and separators, plus one letter of difference. Optionally, each folder adds keywords that are searched exactly, as whole words of the name (ignoring case and separators: GATO, .gato. or mi_gato_2024 match; gatos or gatito do not). You decide one by one in the same Review session: F group, J ignore.scanner container reads new or changed videos by ranges (never downloading them whole), keeps the entry of an object copied to another key, and rescans every 24 hours or with Scan now.STORAGE_SECRET_KEY and never shown again./) keeps only the matching blocks, ignoring case and accents, and filters the videos at the last level./catalogo, /review, /duplicados…), also reachable through its English equivalent..videocat-disk.json.| Review | Assisted duplicates |
|---|---|
| To download | Usage map |
|---|---|
| Transfers | Group files |
|---|---|
| Folder usage with instant search | Activity with the connected drives |
|---|---|
| Administration | Windows Companion |
|---|---|
| Sign in · light | Sign in · dark |
|---|---|
All screenshots use fictional data.
You need Docker with Compose. The installer creates a videocat folder, downloads docker-compose.hub.yml, generates secrets in .env and starts the stack with the official images.
Linux, macOS or WSL:
curl -fsSL https://raw.githubusercontent.com/reiterstahl/videocat/main/install.sh | sh
Windows PowerShell with Docker Desktop:
powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/reiterstahl/videocat/main/install.ps1 | iex"
Open http://localhost:8081 and sign in as admin with the password the installer prints (it is also stored in videocat/.env).
mkdir videocat && cd videocat
curl -fsSLO https://raw.githubusercontent.com/reiterstahl/videocat/main/docker-compose.hub.yml
curl -fsSL https://raw.githubusercontent.com/reiterstahl/videocat/main/.env.example -o .env
Edit .env and replace every replace-with-… value. Generate each secret with openssl rand -hex 32. For local testing without HTTPS, use WEB_ORIGIN=http://localhost:8081 and COOKIE_SECURE=false. Then:
docker compose -f docker-compose.hub.yml up -d
Official images (amd64 and arm64): reiterstahl/videocat-server and reiterstahl/videocat-web, tagged by version (0.2.50) and latest.
Install FFmpeg, which the Companion uses to read metadata and create thumbnails. It is found automatically when installed with WinGet, Scoop or Chocolatey, or in C:\ffmpeg\bin:
winget install Gyan.FFmpeg
Download and run VideoCAT-Companion-win-Setup.exe, then open it from the Start menu. It lives in the system tray.
In the web app, open Administration › Companions and generate a pairing code.
In the Companion, open Settings… › Connection, enter the server URL, paste the code and select Pair.
In Settings… › Browser, copy the local token and paste it in the web app under Profile › Local Companion. That browser can then open, copy and delete files on this PC.
[!TIP] If you used the portable
.exe(0.2.2 or earlier), close it, install with Setup.exe and delete the portable file: settings and pairing are kept in%APPDATA%\VideoCAT Companion.
The Companion follows Windows' display language (Spanish or English); Settings… › Advanced › Language can choose one.
From the Companion's Settings… › Paths you can:
.videocat-disk.json with the name you choose and from then on recognizes it under any letter..videocat-disk.json file at their root. The marker gives them a stable identity even if the drive letter changes, and lets you choose which inner folders to scan.[!IMPORTANT] Drives added by letter in Companions before 0.2.21 show follows the letter: Windows can give that letter to another drive, and its files would land in the wrong catalog. Use Pin identity…: the Companion compares a random sample of that catalog with the files on the drive you pick and, if it is the same drive, writes the marker keeping its catalog. If the sample shows another drive, or a catalog mixed with another drive, it tells you and offers to create a new disk instead.
You can also create the marker with the CLI agent (init-disk or wizard) or by hand at the drive root:
{
"schemaVersion": 1,
"diskId": "generate-a-uuid-v4",
"diskName": "WD 6TB Video 01",
"createdAt": "2026-10-02T00:00:00.000Z",
"scanRoots": ["."]
}
The first scan uploads metadata and thumbnails. Later scans only process new or changed files.
VideoCAT can be installed from the browser. Profile › VideoCAT app shows the button or the steps for your browser:
[!NOTE] Browsers only install apps over HTTPS (or from
localhost). If you open VideoCAT overhttp://with a LAN IP, publish it with HTTPS behind your reverse proxy first.
The app only stores its own code (interface, styles and icons) on the device so it opens quickly. API responses, thumbnails and videos always come from the server, so no catalog data is left on the device. When you publish a new stack version, the app shows A new version of VideoCAT is available · Update.
.env has STORAGE_SECRET_KEY (64 hexadecimal characters). The installers generate it from 0.2.47; on older installations add one made with openssl rand -hex 32, and keep it with your backups.docker compose -f docker-compose.hub.yml --profile s3 up -d. In Portainer, add the variable COMPOSE_PROFILES=s3 to the stack and redeploy it.Tested against MinIO, Garage and RustFS. With Garage, the region is the s3_region of its configuration (garage by default), not us-east-1; with an IP address or localhost as the endpoint, keep path-style addressing on.
[!TIP] Give VideoCAT an access key just for that bucket or prefix: list and read, plus delete only if you want to delete from Review. See Security and privacy.
In the Companion, Settings… › Paths › Drive health › Turn on… and accept Windows' administrator prompt, once. A minute later Administration › Drives shows the health of every connected drive. Your Windows account must be one that can become an administrator; see Failing drives.
If you would rather the Companion not delete on its own, set Delete marked files to Only on request in Settings… › Advanced.
| Key | Review action |
|---|---|
F | Keep |
J | Mark for deletion |
S | Skip |
Z | Undo the last decision |
1–9 | Toggle a tag |
← → | Previous or next frame |
Enter | Play the frames |
Space | Privacy mode: black screen until another Space, Esc or a click, without taking decisions |
G | Switch between frame and gallery |
P | Full screen |
Esc | Exit |
In Duplicates › Start assisted mode: 1 or ← keeps copy A and marks B for deletion, 2 or → does the opposite, Enter applies the recommendation, S skips the group and Esc exits.
D:\VideoCAT\Transfers. Without it, transfers wait.Guarantees at every step:
name (2).ext.| Key | Action in Group files |
|---|---|
F | Group into the folder |
J | Ignore (not proposed again for that folder) |
S | Skip |
Z | Undo (a grouped file leaves the transfer while it is still pending) |
Old external drives fail little by little, and the first sign is usually a file that takes forever to read. VideoCAT watches for that in two ways:
Files with a read problem. When a read gets no answer in 30 seconds, or the drive reports an I/O error, the Companion leaves that file at once (no retries, which would only stress the drive more), goes on with the next one and marks it At risk: later scans leave it alone for 30 days. A deletion that cannot read the file to confirm it is the catalogued one does not delete it and says so; a transfer whose drive stops sending data gives up on that file.
Drive health (SMART). With drive health on, each drive in Administration says:
| State | When |
|---|---|
| Good | SMART reports nothing worrying. |
| Attention | Reallocated or pending sectors, spin-up retries, transfer errors (usually the cable or USB adapter), 55 °C or more, or, on NVMe, media errors or 90 % wear. |
| Probable failure | SMART says FAILED, uncorrectable sectors or read errors, an NVMe critical warning or spare blocks below the minimum, or damaged sectors that grew since the previous check. Copy what is not anywhere else. |
| No SMART data | The drive's USB adapter does not let SMART through. Files with read problems still raise their notice. |
A probable failure also shows a notice on every section. Dismiss hides it until the drive gets worse.
The player first checks whether the browser supports the container and codecs. For H.264 videos with AAC or MP3 audio in an unsupported container, you can enable a temporary MP4 remux, which copies the streams without re-encoding:
REMOTE_REMUX_ENABLED=true and restart server.VideoCAT does not transcode H.265, AV1 or other codecs, because that would use a lot of CPU. Each session belongs to the user who created it, has duration, idle and concurrency limits, and closes when the player stops or the tunnel drops.
Read-ahead. While a video plays, the server asks the Companion for several chunks at once and keeps the amount chosen in Profile › Playback ahead (8 to 128 MB, 32 MB by default), so a 4K video does not keep loading. It uses that much server memory per playback. If you open VideoCAT through a public domain (for example behind Cloudflare Tunnel), the video leaves and comes back through your internet connection even on the same network: that connection's upload speed is the ceiling.
Chromecast is off by default: enable it in Profile. The Google Cast SDK only loads when you use the button, and the receiver gets a signed, short-lived URL, never your credentials. The Chromecast must be able to reach VideoCAT's domain or IP.
The main .env settings (the full, commented list is in .env.example):
| Variable | Purpose |
|---|---|
POSTGRES_PASSWORD, JWT_SECRET, AGENT_TOKEN | Secrets. Generate each one with openssl rand -hex 32. |
ADMIN_USER, ADMIN_PASSWORD | Web app user. |
WEB_ORIGIN | Exact public URL (for example https://cat.example.com). Writes from any other origin are rejected. |
COOKIE_SECURE | true with HTTPS; false only for local testing. |
TRUST_PROXY, TRUST_PROXY_CIDRS | Trust in the reverse proxy; preferably limited to its CIDRs. |
WEB_BIND_ADDR, WEB_PUBLISHED_PORT | Where the web container is published (default 0.0.0.0:8081). |
PROTECTED_FOLDER_PIN, PROTECTED_FOLDER_PATTERNS | PIN and folder-name fragments to protect (for example Private,Protected). |
VIDEOCAT_VERSION | Image version used by docker-compose.hub.yml (0.2.50 or latest). |
REMOTE_REMUX_ENABLED, REMOTE_STREAM_* | Optional remux and remote playback limits. |
STORAGE_SECRET_KEY | Encrypts the secret keys of S3 buckets (64 hexadecimal characters). If it changes, each bucket's secret key has to be entered again. |
S3_SCAN_INTERVAL_HOURS, S3_SCAN_CONCURRENCY | How often the scanner rereads each bucket (24) and how many videos it reads at a time (2). |
*_RETENTION_DAYS | Retention for errors, actions and scans when cleanup runs from Administration. |
Expose only the web container: it already proxies /api/* and /thumbnails/* to server:4000 and forwards the tunnel WebSocket. Your external proxy must also allow Upgrade on /api/agent/tunnel. Nginx example:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
server_name cat.example.com;
client_max_body_size 25m;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
With HTTPS, use WEB_ORIGIN=https://cat.example.com, COOKIE_SECURE=true and TRUST_PROXY=true. HTTPS is also required to install VideoCAT as an app.
VIDEOCAT_VERSION (or use latest) and run docker compose -f docker-compose.hub.yml pull && docker compose -f docker-compose.hub.yml up -d. Migrations run on start, and the thumbnails-init service fixes the thumbnail volume's permissions. In Portainer: Pull and redeploy.pull when the s3 profile is on (--profile s3, or COMPOSE_PROFILES=s3 in Portainer).Release notes for each version are in OPERATIONS.md.
VideoCAT works behind an access gateway such as Cloudflare Access. When that gateway's session expires, the app shows Your access session expired with a button to sign in again and come back to the same page. Point the Companion at the server's internal address (for example http://192.168.1.30:8080) or give it a service token, so it does not depend on that sign-in.
scripts/backup.sh (or scripts/backup.ps1) saves the database, the thumbnail volume, checksums and .env. scripts/verify-backup.sh checks a backup and scripts/restore.sh restores it. Keep backups encrypted: they contain private paths and metadata. Details and a restore drill are in OPERATIONS.md.
Your data
PROTECTED_FOLDER_PATTERNS require a PIN in each session and are left out of duplicate detection.Companion
/health without authentication. Opening, copying, deleting and processing queues require COMPANION_TOKEN.Program Files\VideoCAT SMART, where only administrators can write, and a scheduled task runs them with fixed arguments; its results folder in ProgramData can only be read by users. Turning it off removes both.Web and API
WEB_ORIGIN.Project
main and every pull request, CI runs a clean install, a dependency audit, type checks, unit and API tests against PostgreSQL, coverage thresholds, the build and Playwright UI tests on desktop and mobile.To report a vulnerability privately, see SECURITY.md.
Everything is edited from Settings…, organized in pages: Connection, Browser, Paths, Files, Advanced and Updates. It is stored in %APPDATA%\VideoCAT Companion\.env. Drive health, on the Paths page, is turned on and off with its own button because it needs Windows' administrator permission.
| Variable | Default | Use |
|---|---|---|
SERVER_URL | — | VideoCAT server URL (required). |
WEB_URL | SERVER_URL | URL opened by Open VideoCAT. |
COMPANION_NAME | — | Optional name shown in Administration. |
COMPANION_TOKEN | Generated | Token for local actions; paste it in Profile › Local Companion. |
AGENT_TOKEN | — | Shared token, only for legacy unpaired clients. |
COMPANION_DOWNLOAD_DIR | — | Destination folder for To download. |
FFMPEG_PATH, FFPROBE_PATH | Auto-detected | FFmpeg paths when they are not found automatically. |
AGENT_STATE_DIR | %LOCALAPPDATA%\VideoCAT\agent-state | Local scan state. |
COMPANION_PORT | 29429 | Local port (127.0.0.1 only). |
COMPANION_ALLOWED_ORIGINS | — | Web origins allowed to call the local listener. |
COMPANION_AUTO_DELETE_MARKED | true | Delete marked files automatically or only on request. |
COMPANION_REMOTE_REMUX_ENABLED | false | Temporary MP4 remux for remote playback. |
COMPANION_DISK_POLL_MS | 5000 | Drive detection. |
COMPANION_SCAN_POLL_MS | 900000 | Rescan of monitored paths. |
COMPANION_HEARTBEAT_MS | 15000 | Heartbeat to the server. |
COMPANION_DELETE_POLL_MS | 60000 | Check for pending deletions. |
COMPANION_DOWNLOAD_POLL_MS | 60000 | Check of the download queue. |
The same agent runs from the command line inside the repository (Node.js 22 or later, 24 LTS recommended, with FFmpeg on PATH). It reads the same settings from apps\agent-windows\.env.
npm install
npm run wizard -w @videocat/agent-windows # interactive assistant
npm run init-disk -w @videocat/agent-windows -- --path "E:" --disk-name "WD 6TB Video 01" --scan-root "Videos"
npm run add-root -w @videocat/agent-windows -- --path "E:" --scan-root "Archive/Clients"
npm run scan -w @videocat/agent-windows -- --path "E:" --disk-name "WD 6TB Video 01"
npm run discover -w @videocat/agent-windows # lists marked drives
TypeScript monorepo with npm workspaces (Node.js 22 or later):
| Folder | Contents |
|---|---|
apps/server | Fastify API + Prisma + PostgreSQL, and the S3 scanner (src/scanner.ts). |
apps/web | React 18 + Vite app, served by Nginx in production. |
apps/agent-windows | Scan agent and Electron Companion, with the Velopack updater. |
packages/shared | Shared types and helpers. |
tests, e2e | Unit and API tests (node:test) and UI tests (Playwright). |
scripts | Backup, verification and restore. |
npm install
npm run prisma:generate
npm run dev:server # API on http://localhost:4000 (needs DATABASE_URL and the other variables)
npm run dev:web # Web app on http://localhost:5173
To run the whole stack built from source: docker compose up -d --build.
Tests:
npm run typecheck
npm test # unit, API and coverage thresholds
npx playwright install chromium
E2E_SEED=1 npm run test:e2e # desktop and mobile
API tests that write to PostgreSQL run with RUN_DB_TESTS=true. E2E_SEED=1 loads the demo catalog and replaces all database content: use it only with a development database. To load only the demo: VIDEOCAT_DEMO_SEED=1 npm run seed:demo -w @videocat/server (it refuses to run with NODE_ENV=production).
Companion: bump version in apps/agent-windows/package.json and push to main. The release-companion.yml workflow builds on Windows, packs with Velopack (Setup.exe, full package and deltas), creates the vX.Y.Z tag and publishes the release with notes, SHA-256, attestation and SBOM. A version that is already tagged is never published again. To start it by hand: gh workflow run release-companion.yml -f publish=true.
Companion beta: bump version in a commit whose message carries [skip ci] (a plain push of a new version publishes it as stable), then gh workflow run release-companion.yml -f publish=true -f beta=1 publishes X.Y.Z-beta.1 as a GitHub prerelease. Installed Companions do not update to it: install it with its Setup.exe, and it moves to the next stable release on its own. Packaging refuses an Electron or an agent whose Node.js lacks the latest security fixes.
Local build without publishing (with dotnet tool install -g vpk --version 1.2.161 to produce Setup.exe):
powershell -ExecutionPolicy Bypass -File .\package-companion.ps1
Docker images (amd64 and arm64; also update VIDEOCAT_VERSION in docker-compose.hub.yml and the installers):
docker buildx build --pull --no-cache-filter base --platform linux/amd64,linux/arm64 -f apps/server/Dockerfile -t reiterstahl/videocat-server:0.2.50 -t reiterstahl/videocat-server:latest --push .
docker buildx build --pull --no-cache-filter base --platform linux/amd64,linux/arm64 -f apps/server/Dockerfile --target scanner -t reiterstahl/videocat-scanner:0.2.50 -t reiterstahl/videocat-scanner:latest --push .
docker buildx build --pull --no-cache-filter runtime --platform linux/amd64,linux/arm64 -f apps/web/Dockerfile --build-arg VITE_VIDEOCAT_VERSION=0.2.50 -t reiterstahl/videocat-web:0.2.50 -t reiterstahl/videocat-web:latest --push .
Then attach the VEX documents in docker/vex to the new server and scanner images, so Docker Scout shows the vulnerabilities they declare as not affecting VideoCAT, with their reason (needs the docker scout plugin):
for image in videocat-server videocat-scanner; do
for vex in docker/vex/*.vex.json; do
docker scout attestation add --file "$vex" --predicate-type https://openvex.dev/ns/v0.2.0 "reiterstahl/$image:0.2.50"
done
done
Verifying the Companion installer:
Get-FileHash .\VideoCAT-Companion-win-Setup.exe -Algorithm SHA256
gh attestation verify .\VideoCAT-Companion-win-Setup.exe -R reiterstahl/videocat
Companion (Authorization: Bearer with the paired credential):
POST /api/agent/register-diskPOST /api/agent/scan/start, POST /api/agent/scan/finishPOST /api/agent/files/batchPOST /api/agent/thumbnails/uploadPOST /api/agent/errors/batchGET /api/agent/tunnel (WebSocket)Web (session):
POST /api/auth/login, POST /api/auth/logoutGET /api/files, GET /api/files/:id, GET /api/facets, GET /api/disksGET /api/review/summary, GET /api/review/next, GET /api/review/recoverable-spaceGET /api/duplicates/by-size, GET /api/duplicates/recommended-disks, POST /api/duplicates/assisted/decisionPOST /api/stream-sessions, GET /api/stream-sessions/:id, DELETE /api/stream-sessions/:id, GET /api/playback/randomPOST /api/companions/pairing-code, GET /api/companionsGET /api/folder-usage, GET /api/folder-usage/treeGET /api/audit/errors, GET /api/audit/actions, GET /api/audit/exportGET /api/admin/disks/overview, GET /api/admin/maintenanceGET /api/profile/security, PATCH /api/profile/securityGET /api/version/latest| Document | Contents |
|---|---|
| OPERATIONS.md | Upgrades, backups, restore and Portainer. |
| SECURITY.md | Security policy and private vulnerability reporting. |
| apps/agent-windows/TRAY.md | Tray Companion details (Spanish). |
| ROADMAP.md | Hardening and reliability plan. |
| REMOTE_STREAMING_PLAN.md | Design of secure remote playback. |
| COMMUNITY_SCRIPTS_PLAN.es.md | Plan to publish VideoCAT on community-scripts (Proxmox VE), in Spanish. |
| UI_REDESIGN_PLAN.md | Phased interface redesign. |
| TRANSFERS_PLAN.es.md | Design and progress of Transfers (consolidate and group), in Spanish. |
| PUBLISHING.md | Checklist for publishing official artifacts. |
VideoCAT is released under the AGPL-3.0-or-later license: you can use, study, modify and distribute the project and derived versions, following its copyleft and attribution obligations. The Windows Companion includes an unmodified smartctl.exe from smartmontools 7.5 (GPL-2.0-or-later), with its license and the link to its source next to it.
The official distribution includes optional links to support the original author (GitHub Sponsors). Forks and modified versions may remove or replace them, as long as they comply with the license and keep the required copyright and attribution notices.
COMPANION_DOWNLOAD_STALL_MS | 30000 | Time before a copy counts as stalled. |
COMPANION_FILE_TIMEOUT_SECONDS | 180 | Longest a scan spends on one file before leaving it at risk (30–3600). Each single read already gives up after 30 s. |
COMPANION_STAGING_DIR | — | Transfers staging folder; empty disables transfers. Always keeps 5 % of its drive free. |
COMPANION_TRANSFER_POLL_MS | 60000 | How often pending transfers are checked (minimum 15000). |
TRAY_DISK_POLL_MS | 10000 | Drive refresh in the tray menu. |
COMPANION_LANGUAGE | auto | Interface and activity log language: auto (Windows' display language), es or en. |
TRAY_CLICK_ACTION | open | What a click or double click on the icon does: open (open VideoCAT), activity (show activity) or settings (open settings). |