सामग्री पर जाएं
TubePress — मुफ़्त, स्व-होस्टेड & सक्रिय रूप से अनुरक्षित
मीडिया और ट्रांसकोडिंग

स्टोरेज और मीडिया डिलीवरी

लोकल स्टोरेज, बाहरी स्टोरेज सर्वर (S3, FTP, WebDAV) और सुरक्षित मीडिया प्रॉक्सी।

TubePress हर अपलोड किए गए वीडियो, उसके transcoded renditions और preview assets को डिस्क पर रखता है, और उन्हें एक या अधिक बाहरी storage servers पर transparently offload कर सकता है। यह पृष्ठ बताता है कि फ़ाइलें कहाँ रहती हैं, media storages सिस्टम उन्हें backends में कैसे फैलाता है, और आपकी raw फ़ाइलें उजागर किए बिना media दर्शकों तक कैसे पहुँचती है।

Storage को /admin/settings?tab=storage के अंतर्गत कॉन्फ़िगर किया जाता है। आप पूरी तरह local disk से चला सकते हैं, या FTP, S3-compatible और WebDAV backends जोड़ सकते हैं और TubePress को उन्हें बारी-बारी भरने दे सकते हैं।

TubePress media को कैसे store करता है

अपलोड public/uploads/ के अंतर्गत रहते हैं। प्रत्येक वीडियो को अपना folder मिलता है — वीडियो का video_folder — जिसमें original source के साथ-साथ transcoder द्वारा बनाई गई प्रत्येक rendition और player की ज़रूरत के छोटे assets होते हैं:

public/uploads/
  videos/
    a1b2c3d4.../        one folder per video (video_folder)
      video.mp4         original upload (source)
      video_1080p.mp4   processed source rendition
      video_720p.mp4    transcoded rendition
      video_480p.mp4    transcoded rendition
      timeline.vtt      scrub-preview sprite map
      preview.mp4       hover-preview clip
  thumbnails/           poster images
  watermark/            watermark PNG
  intros/               pre-roll / post-roll clips
  branding/             logo, favicon, background

Transcoder उच्चतम video_<height>p.mp4 फ़ाइल खोजकर source की पहचान करता है, raw video.mp4, .webm या .ogg पर fallback करता है। निचले renditions उसी folder में लिखे जाते हैं, इसलिए एक ही directory वीडियो की सभी जरूरतें पूरी करती है। इन renditions के उत्पन्न होने के तरीके के लिए Transcoding देखें।

CDN सेट होने पर Local एक scratch area है। बाहरी default storage के साथ, प्रत्येक अपलोड locally process किया जाता है और फिर backend पर सुरक्षित होने के बाद app server से delete किया जाता है — local videos/ directory केवल उन्हीं items को रखती है जो अभी भी uploading या transcoding में हैं।

बाहरी storage servers

media storages सिस्टम आपको किसी भी संख्या में backends register करने देता है। नए वीडियो हमेशा default storage में जाते हैं; जब कोई storage अपनी disk threshold पार कर लेती है, TubePress स्वचालित रूप से नए अपलोड अगले उपलब्ध पर switch करता है। मौजूदा वीडियो वहीं से serve होते रहते हैं जहाँ वे लिखे गए थे, क्योंकि प्रत्येक वीडियो अपनी storage_id रिकॉर्ड करता है।

चार backend types समर्थित हैं — और कुछ नहीं:

प्रकारकिसके लिए उपयोग करेंConnection fields
Localएकल server, या शुरुआत के लिएकोई नहीं — public/uploads से serve किया गया
FTPसस्ता storage VPS या seedboxHost, port (21), user, password, remote path, SSL/TLS, passive
S3AWS S3, DigitalOcean Spaces, Backblaze, MinIOAccess key, secret, bucket, region, endpoint, prefix
WebDAVNextcloud और अन्य WebDAV hostsWebDAV URL, user, password

प्रत्येक remote storage में कुछ operational settings भी होती हैं:

Media URL
वह public HTTP पता जहाँ से visitors फ़ाइलें लोड करते हैं — FTP/S3 control address नहीं।
स्थिति
Active (नए वीडियो प्राप्त करता है), Read-only (केवल मौजूदा फ़ाइलें serve करता है) या Disabled (offline)।
अधिकतम disk usage
50–99% (default 90)। पहुँचने पर, नए अपलोड स्वचालित रूप से अगले storage पर switch हो जाते हैं।
Secure URLs
एक expiring token के साथ media links पर हस्ताक्षर करता है — नीचे Secure media delivery देखें।

Storage backend जोड़ना

  1. Storage editor खोलें। /admin/settings?tab=storage पर जाएं और Add Storage पर क्लिक करें।
  2. एक प्रकार चुनें और उसे नाम दें। Local, FTP, S3 या WebDAV चुनें। form केवल उन fields को दिखाने के लिए बदल जाता है जिनकी उस प्रकार को ज़रूरत है।
  3. media URL और credentials दर्ज करें। public Media URL सेट करें, फिर backend के लिए host/keys/path। संग्रहीत password रखने के लिए editing करते समय password blank छोड़ें।
  4. Operational options सेट करें। status, max disk usage threshold, और URLs पर हस्ताक्षर करना है या नहीं, चुनें।
  5. Test करें और save करें। Save करने पर पहले connection test चलता है (और यदि आपने monitor-script दिया है तो उसकी जांच भी)। किसी भी failed check को ठीक करें, फिर save करें। वैकल्पिक रूप से इसे default के रूप में चिह्नित करें ताकि नए अपलोड वहाँ जाएं।
Media URL बनाम control address। Media URL वह है जो browsers fetch करते हैं (उदाहरण के लिए https://cdn.example.com)। यह FTP/S3 endpoint नहीं है — दोनों को मिलाना switch के बाद broken playback का सबसे सामान्य कारण है।

Storage monitor

Remote backends के लिए, TubePress एक छोटे PHP script का उपयोग करके disk space और health को track कर सकता है जिसे आप storage box पर install करते हैं। storage editor के Disk Monitoring panel में, Download monitor script पर क्लिक करें (/api/storage-monitor-download से serve किया गया), इसे अपने remote server पर upload करें, फिर इसका public URL Monitor script URL field में वापस paste करें।

एक बार connected होने पर, editor live disk usage और अंतिम check समय दिखाता है, और auto-switch threshold उन readings का उपयोग करके जानती है कि backend कब भरा है। script को keyed किया गया है ताकि केवल आपका CMS इसे query कर सके।

हर CDN box पर करने योग्य। Monitor के बिना, TubePress remote disk usage नहीं पढ़ सकता, इसलिए max-usage auto-switch केवल उन storages पर कार्य कर सकता है जिन्हें वह measure कर सकता है।

Secure media delivery

जब किसी storage के लिए Secure URLs चालू होती है, TubePress कभी भी direct file path नहीं देता। इसके बजाय यह /media/ के माध्यम से routed एक छोटे, time-limited link पर हस्ताक्षर करता है:

/media/{token}/{expires}/{path}
token
path और expiry का 16-character HMAC-SHA256, उस storage के private secret से signed।
expires
एक Unix timestamp; इसके बीतने के बाद link 403 लौटाता है। default lifetime छह घंटे है।
path
अनुरोधित uploads/videos/… के अंतर्गत फ़ाइल।

Token हर request पर server-side पर re-computed और checked होता है। local storage के लिए TubePress HTTP range support के साथ फ़ाइल को स्वयं stream करता है (ताकि seeking काम करे); remote storage के लिए यह token verify करता है और फिर आपके CDN पर फ़ाइल के लिए 302 redirect जारी करता है। Raw video को web-server layer पर भी rate-limit किया जाता है: storage editor एक ready-to-paste Nginx snippet generate करता है जो पहले कुछ megabytes के बाद streaming को cap करता है, जबकि transcode workers को एक key के साथ full speed पर pull करने देता है।

Tokens path, expiry और secret से bound होते हैं। Storage का secret rotate करने से सभी outstanding links अमान्य हो जाते हैं, और expired links अपने आप काम करना बंद कर देते हैं। एक meaningful anti-scraping barrier के लिए secure URLs को rate-limit snippet के साथ pair करें। Security देखें।

CDN & Cloudflare

TubePress Cloudflare के पीछे आराम से चलने के लिए बनाया गया है। दो बातें मायने रखती हैं:

  • Chunked uploads 100 MB सीमा को bypass करते हैं। Transcode results /api/transcode-upload-chunk के माध्यम से टुकड़ों में CMS को वापस stream किए जाते हैं, इसलिए individual requests Cloudflare की free-tier 100 MB cap से नीचे रहते हैं, चाहे rendition कितनी भी बड़ी हो।
  • Long-cache, cache-busted assets। Static assets को long, immutable cache headers के साथ serve किया जाता है और हर release पर version query द्वारा bust किया जाता है, ताकि एक proxy कभी भी stale फ़ाइल serve किए बिना aggressively cache कर सके।

Per-storage Nginx snippet वीडियो के लिए उचित expires headers और secure local delivery द्वारा उपयोग की जाने वाली वैकल्पिक /media/ internal location जोड़ता है, इसलिए आप इसे सीधे अपने site config में डाल सकते हैं।

अगले कदम

अभी भी अटके हैं?

अपने डैशबोर्ड से टिकट खोलें और हमारी टीम आपकी मदद करेगी।

लाइव डेमो आज़माएं → TubePress डाउनलोड करें →