KembaliArsip / superapp-media / youtuberangkuman
superapp-media

youtuberangkuman

252 file · 17.6 MB

Sistem informasi live — youtuberangkuman.vercel.appBuka di tab baru

README

YOUTUBERANGKUMAN

Knowledge vault untuk rangkuman video YouTube berbasis Next.js, dengan workflow yang sekarang langsung bisa jalan dari data lokal repo tanpa harus menunggu Supabase aktif.

Kondisi Saat Ini

  • Framework: Next.js 14
  • UI: React + Tailwind CSS
  • State & data access: local data utilities + React Query
  • Auth: cookie-based login via route handlers + middleware
  • Content source utama: data/rangkuman.ts dan data/content/*.ts
  • Optional infra: Supabase schema + seed script masih ada untuk kebutuhan berikutnya, tetapi app tidak lagi bergantung padanya untuk render konten

Workflow Tambah Materi

  1. Tambahkan file konten baru di data/content/.
  2. Tambahkan metadata entry baru di data/rangkuman.ts. Untuk batch Predictive History, gunakan helper createPredictiveHistoryEntry(...) dari data/collections.ts.
  3. Jalankan:
npm run typecheck
npm run lint
npm run test
npm run build

Kalau empat langkah ini lolos, materi baru aman masuk.

Menjalankan Project

npm install
npm run dev

Default local login:

  • Username: admin
  • Password: admin4321

Kalau ingin mengganti:

cp .env.example .env.local

Lalu set:

APP_USERNAME="your-username"
APP_PASSWORD="your-strong-password"
NEXT_PUBLIC_BASE_URL="http://localhost:3000"

Struktur Penting

app/                                 App Router pages + auth routes
components/                          UI dan layout
components/yutubibnu/                Komponen halaman Youtube Ibnu
components/youtube-account/          Komponen halaman Youtube Account
data/collections.ts                  Registry koleksi + builder Predictive History
data/rangkuman.ts                    Metadata semua rangkuman
data/youtube-ibnu-videos.ts          Master data video Youtube Ibnu
data/youtube-takeout.json            Hasil parse Google Takeout
scripts/generate-youtube-ibnu-data.mjs   Generator data Youtube Ibnu
scripts/parse-youtube-takeout.mjs        Parser Google Takeout YouTube
lib/data.ts                          Helper list/search/stats dari data lokal
lib/youtube-ibnu.ts                  Helper filter/stats Youtube Ibnu
lib/youtube-takeout.ts               Helper filter/stats Youtube Account
middleware.ts                        Proteksi auth berbasis cookie
__tests__/                           Test suite Vitest

Youtube Ibnu — Master Data Video

Route khusus untuk mengelola semua video di channel Youtube Ibnu:

  • URL: /yutubibnu
  • Data: data/youtube-ibnu-videos.ts (hasil scrape langsung dari YouTube Studio — 875 video)
  • Generator: node scripts/generate-youtube-ibnu-data.mjs
  • Akses: dilindungi login global (middleware.ts); halaman otomatis redirect ke /login kalau belum auth.

Fitur:

  • Stats: total video, durasi, visibility, status.
  • Klasifikasi otomatis: 9 kategori konten (Rapat & Meeting, Pelatihan & BIMTEK, Sosialisasi & Seminar, Rekaman Layar, Proyek & Program, Pendidikan & Kuliah, Marketing & Iklan Digital, Trading & Investasi, Lainnya).
  • Klasifikasi waktu: tahun (timeCategory) dan bulan (monthCategory) berdasarkan tanggal upload.
  • Tag cerdas: zoom, teams, rapat, bimtek, screen-recording, date-stamp, tahun-YYYY, bulan-YYYY-MM, dll.
  • Filter & sort: search, visibility, status, kategori, tahun, bulan, urutan.
  • Visualisasi: distribusi kategori & bulan.
  • Export CSV: unduh hasil filter ke CSV.
  • Link cepat: ke YouTube watch dan YouTube Studio per video.

Youtube Account — Data Pribadi dari Google Takeout

Route untuk menampilkan hasil export Google Takeout YouTube kamu:

  • URL: /youtube-account
  • Data: data/youtube-takeout.json (hasil parse dari folder Takeout)
  • Parser: node scripts/parse-youtube-takeout.mjs [path-ke-folder-takeout]
  • Akses: dilindungi login global.

Data yang bisa ditampilkan:

  • Watch History: semua video yang pernah ditonton beserta waktunya.
  • Subscriptions: daftar channel yang di-subscribe.
  • Playlists: playlist publik/pribadi beserta isi videonya (termasuk Watch Later & Liked Videos kalau ada di Takeout).
  • Uploaded Videos: video yang pernah di-upload beserta metadata (judul, deskripsi, tags, visibility, dll).

Cara pakai:

  1. Download Google Takeout YouTube kamu dari Google Takeout.
  2. Extract archive ke scripts/data/youtube-takeout/.
  3. Jalankan node scripts/parse-youtube-takeout.mjs.
  4. Buka /youtube-account di browser.

Fondasi Predictive History

  • Koleksi khusus tersedia di route /koleksi/predictive-history
  • Metadata default otomatis:
    • channel_name: Predictive History
    • collection_slug: predictive-history
    • tag dasar: predictive-history
    • kategori default: History & Politics
  • Panduan ingest ada di docs/predictive-history-ingest.md

Catatan

  • Supabase migration dan client helper masih disimpan sebagai fondasi lanjutan, tetapi bukan dependency runtime utama.
  • resources/books masih sample content dan terpisah dari alur rangkuman YouTube utama.

File Utama

  • .env.example
  • .eslintrc.json
  • .gitignore
  • CHANGELOG.md
  • README.md
  • middleware.ts
  • next.config.mjs
  • next.config.mjs.backup