🎬 YouTube Research API

Version 1.0.0

Layanan untuk mencari video, mengambil komentar, transcript, dan metadata dari video YouTube

📖 Overview

API ini menyediakan akses ke data video YouTube termasuk pencarian, komentar, transcript, dan metadata. Data disimpan dalam cache untuk menghindari pengambilan berulang.

🔍
Search
Cari video YouTube
💬
Comments
Ambil komentar dengan cache
📝
Transcript
Ambil transcript (cache)
📊
Metadata
Info lengkap video

✅ Fitur

  • 🔍 Pencarian video
  • 💬 Komentar dengan deteksi duplikat
  • 📜 Transcript video (cache)
  • 📊 Metadata lengkap video
  • 💾 Penyimpanan cache di JSON
  • 🚀 Cepat dan efisien

📁 Struktur Cache

/homedata/youtubeapi/repository/ ├── comments/ │ ├── ym/ │ │ └── YMcI754wroM_comments.json │ └── bz/ │ └── bzx1dgp9KUM_comments.json ├── transcript/ │ └── ym/ │ └── YMcI754wroM_transcript.json └── metadata/

💬 Comments API

Mengambil komentar dari video YouTube dengan deteksi duplikat otomatis dan cache.

GET /comments GET

Parameters

Parameter Type Default Description
id required string - ID video YouTube
limit string all Jumlah komentar: "all" atau angka (100, 500, dll)
order string time Urutan: "time" (terbaru) atau "relevance"

Example Request

GET /comments?id=YMcI754wroM&limit=100

Example Response

{
  "video_id": "YMcI754wroM",
  "requested_limit": "100",
  "video_metadata": {
    "title": "Judul Video",
    "channel_title": "Nama Channel",
    "view_count": 1500000,
    "like_count": 45000,
    "comment_count": 5000
  },
  "archive_comments": 0,
  "new_comments_found": 100,
  "total_comments": 100,
  "storage_path": "/homedata/youtubeapi/repository/comments/ym/YMcI754wroM_comments.json",
  "comments": [...],
  "fetch_summary": {
    "total_fetched_from_api": 100,
    "duplicates_found": 0,
    "stopped_at_duplicate": false,
    "limit_reached": true
  }
}

📝 Transcript API

Mengambil transcript video. Data di-cache setelah pengambilan pertama dan tidak diambil ulang.

GET /transcript GET

Parameters

Parameter Type Default Description
id required string - ID video YouTube
language string - Kode bahasa (en, id, dll) - opsional
format string json Format output: "json" atau "text"
include_timestamps boolean true Sertakan timestamp (format text)
💡 Catatan: Transcript hanya diambil sekali dari API dan disimpan di cache. Pengambilan berikutnya akan langsung dari cache.

Example Requests

# JSON format GET /transcript?id=YMcI754wroM # Text format with timestamps GET /transcript?id=YMcI754wroM&format=text # Text format without timestamps GET /transcript?id=YMcI754wroM&format=text&include_timestamps=false

Example Response (JSON)

{
  "video_id": "YMcI754wroM",
  "total_segments": 245,
  "transcript": [
    {
      "text": "Hello everyone, welcome to my channel",
      "start": 0.0,
      "duration": 5.2
    },
    {
      "text": "Today we're going to talk about...",
      "start": 5.2,
      "duration": 8.5
    }
  ],
  "storage_path": "/homedata/youtubeapi/repository/transcript/ym/YMcI754wroM_transcript.json",
  "source": "cache",
  "message": "Transcript loaded from cache"
}

📊 Metadata API

Mengambil metadata video seperti judul, deskripsi, views, likes, dll.

📌 Informasi: Metadata otomatis diambil bersama dengan komentar atau transcript dan disimpan di cache.

Metadata yang tersedia

Field Description
titleJudul video
descriptionDeskripsi video
channel_idID channel
channel_titleNama channel
published_atTanggal publikasi
durationDurasi (readable)
view_countJumlah views
like_countJumlah likes
comment_countJumlah komentar
tagsTags video (array)
privacy_statusStatus privasi
made_for_kidsKonten anak-anak

🚀 Cara Penggunaan

1. Mencari Video

2. Mengambil Komentar

3. Mengambil Transcript

4. Cek Cache