NewsWorld
PredictionsDigestsScorecardTimelinesArticles
NewsWorld
HomePredictionsDigestsScorecardTimelinesArticlesWorldTechnologyPoliticsBusiness
AI-powered predictive news aggregation© 2026 NewsWorld. All rights reserved.
Trending
TrumpTariffTradeAnnounceLaunchNewsPricesStrikesMajorFebruaryPhotosYourCarLotSayCourtDigestSundayTimelineSafetyGlobalMarketTechChina
TrumpTariffTradeAnnounceLaunchNewsPricesStrikesMajorFebruaryPhotosYourCarLotSayCourtDigestSundayTimelineSafetyGlobalMarketTechChina
All Articles
Hacker News
Published 8 days ago

YouTube as Storage

Hacker News · Feb 14, 2026 · Collected from RSS

Summary

Article URL: https://github.com/PulseBeat02/yt-media-storage Comments URL: https://news.ycombinator.com/item?id=47012964 Points: 93 # Comments: 74

Full Article

Media Storage Stores files onto YouTube by encoding them into lossless video and decoding them back to the original file. Supports both a command-line interface and a graphical user interface. Features File Encoding/Decoding: Encode any file into a lossless video (FFV1/MKV) and decode it back Fountain Codes: Uses Wirehair fountain codes for redundancy and repair Optional Encryption: Encrypt files with a password using libsodium (XChaCha20-Poly1305) Batch Processing: Queue multiple files for batch encoding (GUI) Progress Tracking: Real-time progress bars and status updates (GUI) CI/CD Pipeline Visit my CI/CD pipeline, and click "Login as Guest". Visit the yt-media-storage project, click on the latest passing build, and click "Artifacts" to download the latest build artifacts for both the CLI and GUI. You may need to install some shared libraries (FFmpeg, Qt6, libsodium) to run the executables. Requirements CMake 3.22 C++23 compiler FFmpeg libsodium OpenMP Qt6 (Core and Widgets) Installation Ubuntu/Debian sudo apt update sudo apt install cmake build-essential qt6-base-dev \ libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev \ libsodium-dev libomp-dev Fedora/CentOS sudo dnf install cmake gcc-c++ qt6-qtbase-devel ffmpeg-devel libsodium-devel libgomp Arch Linux sudo pacman -S cmake qt6-base ffmpeg libsodium openmp macOS (Homebrew) brew install cmake qt@6 ffmpeg libsodium libomp Windows (vcpkg) vcpkg install ffmpeg libsodium openmp qt6 Or install Qt6 separately via the Qt Online Installer and FFmpeg/libsodium via vcpkg. Building mkdir build cmake -B build cmake --build build This produces two executables: media_storage — Command-line interface media_storage_gui — Graphical user interface Usage CLI ./media_storage encode --input <file> --output <video> [--encrypt --password <pwd>] ./media_storage decode --input <video> --output <file> GUI ./media_storage_gui Single File Operations Encode a file to video: Click "Browse..." next to "Input File" to select the file you want to encode Click "Browse..." next to "Output File" to choose where to save the video Click "Encode to Video" to start the process Decode a video to file: Click "Browse..." next to "Input File" to select the video file Click "Browse..." next to "Output File" to choose where to save the decoded file Click "Decode from Video" to start the process Batch Operations Click "Add Files" to add multiple files to the batch queue Select an output directory for all encoded videos Click "Batch Encode All" to process all files in sequence Monitoring The progress bar shows the current operation progress Status label displays current operation status Logs panel provides detailed information about each step All operations run in separate threads to keep the UI responsive Technical Details Encoding: Files are chunked, encoded with fountain codes, and embedded into video frames Decoding: Packets are extracted from video frames and reconstructed into the original file Video Format: FFV1 codec in MKV container (lossless) Frame Resolution: 3840x2160 (4K) at 30 FPS Encryption: Optional XChaCha20-Poly1305 via libsodium Troubleshooting Build Issues Qt6 not found: Ensure Qt6 development packages are installed FFmpeg libraries missing: Install FFmpeg development packages libsodium missing: Install libsodium development packages OpenMP errors: Install OpenMP development packages Runtime Issues Cannot open input file: Check file permissions and paths Encoding fails: Ensure sufficient disk space for output video Decoding fails: Verify the input file is a valid encoded video License This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.


Share this story

Read Original at Hacker News

Related Articles

Hacker Newsabout 2 hours ago
Volatility: The volatile memory forensic extraction framework

Article URL: https://github.com/volatilityfoundation/volatility3 Comments URL: https://news.ycombinator.com/item?id=47110781 Points: 3 # Comments: 0

Hacker Newsabout 2 hours ago
Holo v0.9: A Modern Routing Stack Built in Rust

Article URL: https://github.com/holo-routing/holo/releases/tag/v0.9.0 Comments URL: https://news.ycombinator.com/item?id=47110634 Points: 4 # Comments: 1

Hacker Newsabout 3 hours ago
The Dance Floor Is Disappearing in a Sea of Phones

Article URL: https://www.bloomberg.com/news/features/2026-02-20/a-boom-in-electronic-dance-music-is-changing-club-culture Comments URL: https://news.ycombinator.com/item?id=47110549 Points: 12 # Comments: 0

Hacker Newsabout 3 hours ago
Attention Media ≠ Social Networks

Article URL: https://susam.net/attention-media-vs-social-networks.html Comments URL: https://news.ycombinator.com/item?id=47110515 Points: 63 # Comments: 13

Hacker Newsabout 3 hours ago
Minions: Stripe's one-shot, end-to-end coding agents – Stripe Dot Dev Blog

Article URL: https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents Comments URL: https://news.ycombinator.com/item?id=47110495 Points: 36 # Comments: 29

Hacker Newsabout 3 hours ago
What Is a Database Transaction?

Article URL: https://planetscale.com/blog/database-transactions Comments URL: https://news.ycombinator.com/item?id=47110473 Points: 30 # Comments: 2