Command Palette

Search for a command to run...

mosinjonovjasurbek00/animam-stream
Public
wasmer run mosinjonovjasurbek00/animam-stream

šŸš€ AnimamStream — Animam.uz Uchun Maxsus Video Hosting & HLS Streaming Tizimi

AnimamStream — bu animam.uz anime platformasi uchun maxsus ishlab chiqilgan, yuqori tezlikda ishlovchi, server resurslarini tejovchi va Wasmer Edge (PostgreSQL) hamda Archive.org (S3 & Cheksiz CDN) asosida ishlaydigan zamonaviy video hosting xizmati.


🌟 Asosiy Afzalliklari

  1. ⚔ Serverga 0% Og'irlik (Minimal Resource Footprint):
    • Video yuklash jarayoni to'g'ridan-to'g'ri foydalanuvchi/admin brauzeridan Archive.org S3 CDN ga amalga oshiriladi.
    • Wasmer serveringiz og'ir videolarni qayta ishlashga (re-encoding) va gigabaytlab video trafigiga o'z resursini sarflamaydi.
  2. 🌐 Cheksiz Xotira & Bepul Global CDN:
    • Barcha videofayllar Internet Archive (Archive.org) da saqlanadi.
    • Foydalanuvchilar videolarni to'g'ridan-to'g'ri Archive.org ning yuqori tezlikdagi CDN tarmog'idan stream qilib ko'radi.
  3. šŸŽ¬ Anime Uchun Maxsus Video Player:
    • HLS.js bilan o'ta tez yuklanish: Kam kechikish (low latency), aqlli buffer prefetching.
    • Intro (Opening) o'tkazish (+85s): Bir bosish bilan animening boshlanish qo'shig'ini o'tkazib yuborish.
    • Ending o'tkazish: Qism oxiridagi titrlarni o'tkazib, keyingi qismga o'tish.
    • Qismlar ro'yxati (Drawer): Playerni yopmasdan turib boshqa qismlarni tanlash.
    • Sifat & Tezlik tanlash: Auto, 1080p, 720p, 480p hamda 0.5x - 2.0x tezliklar.
    • Klaviatura boshqaruvi: Space (Play/Pause), ← / → (5s oldinga/orqaga), F (Fullscreen), M (Mute), N (Next Episode), S (Skip Intro).
  4. 🐘 Wasmer Edge Managed PostgreSQL Integratsiyasi:
    • Wasmer Edge avtomatik tarzda PostgreSQL bazasini ulaydi (app.yaml).
    • Dastur Wasmer taqdim etgan DB_HOST, DB_PORT, DB_NAME, DB_USERNAME, DB_PASSWORD orqali to'g'ridan-to'g'ri ulanadi.
    • Mahalliy testlar uchun esa avtomatik SQLite ga o'tadi.
  5. šŸ“± Qulay Boshqaruv Paneli (Admin Dashboard):
    • Animelar katalogini boshqarish.
    • Drag & Drop video yuklagich (tezlik, qolgan vaqt va foiz ko'rsatkichi bilan).
    • Tayyor iframe kodini bir bosishda nusxalash.

šŸ“ Loyiha Tuzilmasi

animam-stream/
ā”œā”€ā”€ app.yaml                 # Wasmer Edge App va PostgreSQL konfiguratsiyasi
ā”œā”€ā”€ wasmer.toml              # Wasmer paket manifesti
ā”œā”€ā”€ server.py                # Asosiy Python server (REST API & Embed Player)
ā”œā”€ā”€ database.py              # PostgreSQL (Wasmer) va SQLite ma'lumotlar bazasi qatlami
ā”œā”€ā”€ archive_client.py        # Archive.org S3 API integratsiyasi
ā”œā”€ā”€ seed.py                  # Dastlabki namunaviy ma'lumotlar bilan to'ldirish
ā”œā”€ā”€ requirements.txt         # Kerakli kutubxonalar (psycopg, requests)
ā”œā”€ā”€ Dockerfile               # Konteyner fayli (ixtiyoriy)
ā”œā”€ā”€ static/
│   ā”œā”€ā”€ css/
│   │   ā”œā”€ā”€ style.css        # Dashboard dizayni (Dark Neon Anime uslubi)
│   │   └── player.css       # Video player dizayni
│   └── js/
│       ā”œā”€ā”€ app.js           # Dashboard boshqaruv logikasi
│       └── player.js        # HLS Player mexanizmi va Anime tugmalari
└── templates/
    ā”œā”€ā”€ dashboard.html       # Admin boshqaruv paneli
    ā”œā”€ā”€ embed.html           # Animam.uz sayti uchun Iframe Player
    └── docs.html            # API va integratsiya qo'llanmasi

šŸš€ Wasmer.io ga Joylash (Deployment)

Wasmer Edge ilovangiz uchun avtomatik ravishda PostgreSQL ma'lumotlar bazasini yaratib beradi.

  1. Wasmer CLI ga kiring:

    wasmer login
    
  2. Loyihani deploy qiling:

    cd /home/jasurbek/.gemini/antigravity/scratch/animam-stream
    wasmer deploy
    
  3. Wasmer avtomatik tarzda:

    • app.yaml dagi capabilities.database orqali PostgreSQL bazasini ishga tushiradi.
    • Kerakli jadvallarni (anime, episodes, settings, video_qualities) avtomatik yaratadi.
    • Sizga jonli domen beradi: https://animam-stream.wasmer.app!

šŸ”‘ Archive.org S3 Kalitlarini Olish

Videolarni Archive.org ga dastur orqali yuklash uchun:

  1. archive.org saytida hisob yarating va kiring.
  2. archive.org/account/s3.php manziliga o'ting.
  3. Generate New Keys tugmasini bosing.
  4. Chiqqan Access Key va Secret Key nusxasini oling.
  5. AnimamStream boshqaruv panelidagi "Sozlamalar & API" bo'limiga kirib kalitlarni saqlang (yoki .env faylida ARCHIVE_ACCESS_KEY va ARCHIVE_SECRET_KEY qilib qo'ying).

šŸ“ŗ Animam.uz Saytiga Iframe Orqali Joylash

Saytingizdagi tomosha qilish sahifasiga bitta qator kod qo'shing:

<iframe 
    src="https://<sizning-wasmer-manzilingiz>.wasmer.app/embed/EPISODE_ID" 
    width="100%" 
    height="540" 
    frameborder="0" 
    allowfullscreen 
    allow="autoplay; fullscreen; picture-in-picture">
</iframe>

Yoki qulayroq usulda — anime slugi va qism raqami orqali:

<iframe 
    src="https://<sizning-wasmer-manzilingiz>.wasmer.app/embed/naruto-shippuden/1" 
    width="100%" 
    height="540" 
    frameborder="0" 
    allowfullscreen>
</iframe>

šŸ“” REST API Yo'riqnomasi

Animam.uz frontend yoki backendidan to'g'ridan-to'g'ri bog'lanish uchun:

MetodEndpointTavsif
GET/healthServer va PostgreSQL bazasi holatini tekshirish
GET/api/v1/animeBarcha animelar va ularning qismlar sonini olish
GET/api/v1/anime/{slug}Tanlangan anime va uning barcha qismlarini olish
POST/api/v1/animeYangi anime yaratish (title, slug, poster_url, ...)
GET/api/v1/episodes/{id}Qismning to'liq oqim ma'lumotlari va Intro skip vaqtlari
POST/api/v1/upload/initArchive.org ga yuklash parametrlarini generatsiya qilish
GET/api/v1/settingsOmmaviy tizim sozlamalarini olish

šŸ’» Mahalliy Kompyuterda Ishga Tushirish

cd /home/jasurbek/.gemini/antigravity/scratch/animam-stream

# 1. Namunaviy ma'lumotlarni yuklash (Test uchun)
python3 seed.py

# 2. Serverni ishga tushirish
python3 server.py

Brauzerda oching:

High Performance Anime Video Hosting & Streaming Server for Animam.uz with Archive.org CDN and PostgreSQL