>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Go

Persoonlijke videohosting vanuit de cloud zonder serverbelasting — project 91 verkend

Soms wil je je eigen mediaserver opzetten voor een thuisarchief of persoonlijke opnames, maar je komt direct tegen resourcebeperkingen aan. Een budget virtual machine heeft meestal een bescheiden schijf van 20 gigabyte en beperkte bandbreedte. Het streamen van een paar zware videobestanden verzadigt gemakkelijk het netwerk, en het opslaan van gigabytes aan content vereist constant meer ruimte kopen.

Onlangs stuitte ik op een project met de beknopte naam 91. Het is een privé-videohostingoplossing gebouwd met Go die het schijfruimte- en verkeersprobleem oplost met een eenvoudige truuc. Het maakt gebruik van je bestaande cloudopslag en serveert video's via directe omleidingen.

Wat is de hoofdfunctie

Reguliere mediaservers zoals Plex of Jellyfin routeren alle zware videostreams via hun eigen processor en netwerkinterface. Als je server op een goedkope VPS staat, bereiken transcodering en distributie snel een plafond.

Project 91 werkt anders. Het verwerkt de taken van een catalogus, adminpaneel en webinterface-generator. Wanneer je een video afspeelt, stuurt de server de browser een HTTP 302 met een directe link naar de cloudopslag-CDN. Als gevolg hiervan wordt VPS-verkeer alleen gebruikt voor het serveren van de webpagina zelf en miniaturen, terwijl de videostream rechtstreeks van de cloudprovider naar de gebruiker gaat.

Het project kan verbinden met WebDAV, Google Drive, OneDrive, evenals populaire Aziatische clouds zoals PikPak, 115 en 123pan.

Hoofdscherm

Wat zit erin: van TikTok-feed tot vervallende links

De ontwikkelaar heeft verschillende specifieke functies toegevoegd die je zelden ziet in standaard zelfgehoste spelers.

Korte video's

Met één klik op de knop schakelt de interface over naar een verticale feed die lijkt op TikTok of Reels. Video's scrollen met het muiswiel of swipebewegingen. Hoewel de auteur eerlijk opmerkt in de README dat deze modus nog niet perfect werkt op iOS.

Eenmalig delen

Video's kunnen worden gedeeld met behulp van een eenrichtingsbekijkingsprincipe. Er wordt een speciale link gegenereerd waarmee het bestand precies één keer wordt afgespeeld zonder autorisatie. Wanneer je de pagina opnieuw probeert te openen, wordt toegang tot de video geweigerd.

Delen-pagina

Drievoudig scherm voor verticale video's

Bij het bekijken van verticale video op een breed computermonitor kan de speler het beeld uitbreiden over drie secties, waarbij de zijkanten worden gevuld met vervaagde duplicaten. Een belangrijke overweging: deze modus proxiet de stream via je VPS, dus de 302-omleidingsbenadering zonder verkeer is hier niet van toepassing.

| Enkel scherm | Drievoudig scherm | |---| | Enkel scherm | Drievoudig scherm |

Aangepaste crawlers

Het systeem bevat ingebouwde ondersteuning voor externe scripts die de medialibrary automatisch vullen. De SpiderFor91-repository bevat specificaties voor het maken van aangepaste parsers.

Speler

Hoe te deployen

Onder de motorkap houden Go en SQLite het project lichtgewicht. Er zijn twee standaard installatiepaden beschikbaar.

Kant-en-klare installatiescript

Als je draait op een schone Ubuntu- of Debian-server, kun je het Bash-script uit de repository gebruiken:

sudo apt update && sudo apt install -y curl ca-certificates
curl -fsSL https://raw.githubusercontent.com/nianzhibai/91/main/install.sh -o install.sh
sudo bash install.sh

Na de installatie is er een CLI-hulpprogramma 91 beschikbaar in het systeem voor het beheren van de service. Hiermee kun je de status controleren, logs bekijken en de binary updaten:

91 status     # Проверить статус
91 logs       # Посмотреть логи
91 update     # Обновить сервис

Deployen via Docker Compose

Voor degenen die containerisatie prefereren, is het eenvoudiger om services te starten met het standaard Compose-bestand:

mkdir video-site-91 && cd video-site-91
curl -fsSL https://raw.githubusercontent.com/nianzhibai/91/main/docker-compose.yml -o docker-compose.yml
docker compose up -d

Alle data wordt lokaal opgeslagen in verschillende bestanden:

  • ./data/config.yaml bevat administratorgegevens en cloud-tokens.
  • ./data/video-site.db slaat de SQLite-database op.
  • ./data/previews/ wordt gebruikt voor cover- en preview-caching.

Adminpaneel

Is het de moeite waard om te proberen

Project 91 is een interessante vondst voor degenen die een eenvoudige webinterface over cloudopslag nodig hebben zonder overmatige uitgaven aan een krachtige server. Dankzij 302-omleidingen kan het systeem gemakkelijk draaien zelfs op de goedkoopste VPS voor een paar dollar per maand.

Het voor de hand liggende nadeel is de taalbarrière: documentatie en een deel van de interface zijn initieel gericht op het Chinese segment van het internet. Desondanks werken basis WebDAV en internationale clouds zonder problemen. Als je een privé-speler nodig hebt met eenmalige link-functionaliteit en verticale modus, is dit project zeker het overwegen waard.

Gerelateerde projecten