[Bug] Paid-content 10% video previews unplayable (truncated MP4) #35
Closed
opened 2026-06-16 10:40:24 +00:00 by lfg2025
·
3 comments
No Branch/Tag Specified
main
feat/nostr-vpn-seller-app
conduit-market-archyapp
fix/gitea-portainer-20260930
fix/app-install-lifecycle-20260930
fix/filebrowser-purchase-filing
fix/ecash-paid-download-v2-keyset
fix/paid-content-payment-not-lost
fix/mint-error-detail-swallowed
investigate/framework-lnd-startup
fix/minibits-already-redeemed
cuprate-fixes
feature/dojobay-app
fix/bitcoin-core-tor-service-name
docs/openwrt-gateway-setup
cuprate-cpu-fix
fix/cuprate-explicit-logging-levels
companion/session-2026-08-31
companion/0.5.28-deploy-handoff
companion/0.5.28-ship
companion/0.5.28
app-bumps-mirror-pending
cuprate-archyapp
docs/todo-list
companion/0.5.27-version-meta
companion/0.5.27-ship
companion/0.5.27-clipboard-qr-restart
ux-at-last
fix/mesh-send-content-inline-federation-fallback
cashu-error-messages
gsd/phase-13-aiui-functional-conversational-node-control-and-content-surf
feat/podsteadr-app-package
rotate-release-root
chore/aiui-monorepo-migration
wip/phase-13-p13-02
wip/phase-13-p13-01
fix/bitcoin-conf-conflict-crash-loop
demo-build
archy-hwconfig
openwrt-enhancements
a3-10-endpoint-fallback
public-prelaunch
release/1.7.115-prep
fix/web-listener-ipv6
fips-companion-5g-hardening
fix/connection-accept-deadlock
fix/demo-images-path-filter
fix/companion-autologin-replay-intro
networking-profits-dashboard
identities-mobile-polish
companion-qr-scan-fix
companion-qr-pairing
intro-reliability-video-perf
login-bg-continuity
audio-bottom-bar
demo-intro-every-visit
intro-entrance-fixes
cloud-feedback-demo-content
cloud-tabs-search
ark-wallet-ui-demo
demo-nginx-app-assets
demo-ui-fixes
ark-wallet-barkd
v1.8.22-alpha
v1.8.21-alpha
v1.8.20-alpha
v1.8.19-alpha
v1.8.18-alpha
v1.8.17-alpha
v1.8.16-alpha
v1.8.15-alpha
v1.8.14-alpha
companion-v0.5.32
v1.8.13-alpha
v1.8.12-alpha
v1.8.11-alpha
v1.8.10-alpha
v1.8.9-alpha
companion-v0.5.28
v1.8.8-alpha
v1.8.7-alpha
v1.8.6-alpha
v1.8.5-alpha
v1.8.4-alpha
v1.8.3-alpha
v1.8.2-alpha
v1.8.1-alpha
v1.8.0-alpha
companion-v0.5.27
v1.7.129-alpha
Labels
Clear labels
companion-agent
queued
roadmap
waiting-external
Companion-app agent's handover list (node-side parts tracked separately)
Triaged, next in this session's queue after current release work
Feature/effort item, deliberately unscheduled — needs scoping + a slot, not a fix today
Waiting on a person outside this session (tester, operator)
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: lfg2025/archy#35
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
content.preview-peer returns base64 of the first ~10% of the file; for non-faststart MP4 the moov atom is at the end, so a 10% prefix will not play. Free content streams fine via /api/peer-content (Range). Fix needs backend: generate proper preview clips (ffmpeg faststart / first-N-seconds) or serve previews moov-first. Frontend now shows a clear error overlay (commit c481afc7). (Found 2026-06-16)
Deferred: needs the serving node to generate a real preview clip (ffmpeg faststart / first-N-seconds). Frontend now shows a clean error overlay instead of a black box.
STATUS: pure-Rust MP4 fix approach approved earlier but not yet implemented this session (focus was on the live fleet bugs + the DHT merge). Still open; next when prioritised.
Fixed: the preview path no longer streams an unplayable byte-prefix for non-faststart MP4s.
content_server.rsnow scans the MP4 top-level boxes and only serves a truncated preview when the file is faststart (moovbeforemdat, i.e. a prefix is playable); non-faststart media returns a newPreviewUnavailable(HTTP 415 +X-Content-Preview: unavailable) so the UI shows its 'preview unavailable' overlay (shipped c481afc7) instead of a stuck player. Unit testsdetects_faststart_*pass. NOTE: full preview-clip generation (re-encode/first-N-seconds) is a separate enhancement — it needs ffmpeg, which isn't on the node host (would run via the IndeeHub ffmpeg container).