Video Tante Ngentot Sama Keponakan Rapidshare (FREE ✦)

┌───────────────────────┐
│   Front‑End (Web/Mobile)│
│  - React (Next.js)      │
│  - React‑Native (iOS/Android)│
└───────┬───────────────┘
        │  API (REST/GraphQL)
        ▼
┌───────────────────────┐        ┌─────────────────────┐
│   API Gateway (Kong)  │◄──────►│   Auth Service (Keycloak)│
└───────┬───────────────┘        └─────────────────────┘
        │
        ▼
┌───────────────────────┐
│   Video Service (Go)   │  ←─►  FFmpeg pipeline (transcode to HLS/DASH)
│   - Metadata DB (PostgreSQL)
│   - Streaming CDN (CloudFront)
└───────┬───────────────┘
        │
        ▼
┌───────────────────────┐
│   RapidShare‑Like      │
│   Download Service (Go)│
│   - Object Store (S3‑compatible) │
│   - Signed‑URL Generator           │
└───────┬───────────────┘
        │
        ▼
┌───────────────────────┐
│   Analytics & Events  │
│   - Kafka → ClickHouse│
│   - Dashboard (Metabase)│
└───────────────────────┘

All services are containerised (Docker) and orchestrated via Kubernetes with auto‑scaling.


| Element | Description | |--------|-------------| | Name | Tante Sama Keponakan – Lifestyle & Entertainment Hub | | Goal | Provide a dedicated, searchable, social‑ready video hub that surfaces new episodes, behind‑the‑scenes clips, downloadable assets, and community interaction for fans of the “Tante Sama Keponakan” brand. | | Key Value | • Monetise high‑engagement content (ads, sponsorships, premium downloads).
• Keep the audience inside the ecosystem (watch → share → download).
• Leverage a RapidShare‑like storage layer for massive, scalable, fast‑downloadable assets (e.g., high‑resolution video files, exclusive PDFs, music tracks). | | Target Audience | • Fans of Indonesian lifestyle & entertainment (primarily 18‑35 y/o).
• Creators/brands looking for placement in a culturally‑relevant video hub.
• Power‑users who want to download full‑resolution assets for offline viewing/repurposing. | Video Tante Ngentot Sama Keponakan Rapidshare


| Screen | Core Elements | Interaction Highlights | |--------|---------------|------------------------| | Home | - Hero carousel (latest episode)
- “Continue Watching” strip
- Category tabs (Lifestyle, Music, Food) | Swipe carousel, auto‑play preview (muted 5 s). | | Episode Detail | - Video player (HLS)
- Episode title, description, tags
- Action bar: Like, Comment, Share, Download
- Related clips carousel | Clicking Download opens modal with quality selector → Generate link (spinner → link appears). | | Download Modal | - Quality radio list
- Estimated size
- “Copy Link” button (clipboard)
- “Open in new tab” shortcut | Link auto‑copies; toast notification “Link copied”. | | Playlist | - Grid of saved episodes
- Drag‑to‑reorder (mobile long‑press) | Tap episode → quick‑play or edit playlist. | | Comments | - Threaded view, avatar, timestamp
- “Reply” button, emoji picker | Inline reply expands, optimistic update. | | Admin Upload | - Drag‑and‑drop zone for video file
- Metadata form (title, tags, description, thumbnail)
- “Publish” toggle (draft / live) | Shows progress bar; on success shows “Video processing… (will be live in 5 min)”. | All services are containerised (Docker) and orchestrated via

All colors follow the brand palette: deep teal (#006064), warm coral (#FF6F61), soft gray (#F5F5F5). Font: Inter (variable). | Element | Description | |--------|-------------| | Name


| Category | Detail | |----------|--------| | Performance | • Page load < 2 s on 3G (core‑web‑vitals).
• Video start‑up latency < 1 s after play. | | Scalability | • Video ingest pipeline must handle 10 GB/min peak.
• Download service must sustain 5 k req/s. | | Security | • Signed URLs use HMAC‑SHA256, expire after configurable TTL.
• All API traffic via HTTPS, JWT‑based auth. | | Compliance | • Store user‑generated comments in GDPR‑compliant region (EU/ID). | | Observability | • Centralised logging (ELK), metrics (Prometheus), alerts for 99.9 % uptime. | | Availability | • 99.95 % SLA for streaming; 99.9 % for download endpoint. | | Maintainability | • Codebase in TypeScript (Node.js + React) for front‑end, Go for download service.
• CI/CD pipeline with automated unit/integration tests (> 80 % coverage). |


| ID | Requirement | Acceptance Criteria | |----|-------------|---------------------| | FR‑01 | Content Ingestion – Admin can upload a new “Tante Sama Keponakan” episode (video + thumbnail + meta). | • Upload UI accepts MP4, WebM, 1080p‑4K.
• System automatically generates streaming renditions (HLS/DASH) and a RapidShare download bundle (original + 720p). | | FR‑02 | Video Playback – Users watch via adaptive streaming (HLS/DASH). | • Playback works on Chrome, Safari, Android, iOS.
• Playback resumes from last position (local storage). | | FR‑03 | Download Service – Provide secure, time‑limited direct download links. | • After clicking Download, a signed URL (valid 24 h) is returned.
• Link points to an S3‑compatible bucket that mimics RapidShare behaviour (public‑share link). | | FR‑04 | Social Interaction – Like, comment, share. | • Likes update instantly (optimistic UI).
• Comments are paginated, can be flagged. | | FR‑05 | Recommendation Engine – Show “Next Episode”, “Related Lifestyle Clips”. | • Uses collaborative filtering + tag‑based relevance. | | FR‑06 | User‑Generated Playlists – Save episodes to personal playlists. | • Playlists are private by default, can be set public. | | FR‑07 | Analytics Dashboard – For internal stakeholders and sponsors. | • Shows views, watch‑time, download count, ad‑impressions per episode. | | FR‑08 | Access Control – Free vs. Premium tier. | • Free users see ads and 720p streaming only.
• Premium users get ad‑free 4K + unlimited downloads. | | FR‑09 | Responsive UI – Same experience on web, iOS, Android. | • All UI components adapt to ≤ 320 px width. | | FR‑10 | Localization – Bahasa Indonesia primary, English optional. | • All UI strings externalised, language switch toggles instantly. |


openapi: 3.0.3
info:
  title: Tante Sama Keponakan Video Hub API
  version: 1.0.0
servers:
  - url: https://api.tantesama.id/v1
paths:
  /episodes:
    get:
      summary: List published episodes
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - name: tag
          in: query
          schema:  type: string 
      responses:
        '200':
          description: Paginated list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EpisodeList'
/episodes/id:
    get:
      summary: Episode detail (metadata + streaming URLs)
      parameters:
        - name: id
          in: path
          required: true
          schema:  type: string 
      responses:
        '200':
          description: Episode object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Episode'
/episodes/id/download:
    post:
      summary: Generate time‑limited download link
      security: [ bearerAuth: [] ]
      parameters:
        - name: id
          in: path
          required: true
          schema:  type: string 
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quality:
                  type: string
                  enum: [1080p,720p,4K]
                  default: 1080p
      responses:
        '200':
          description: Signed URL
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    format: uri
                  expiresAt:
                    type: string
                    format: date-time

Notes