AI Skill Report Card

Extracting Video Metadata

B+78·Aug 19, 2026·Source: Extension-page

Quick Start

Given raw scraped YouTube page text, parse it into structured records:

JSON
{ "title": "Trabzonspor Ferencváros'u Nasıl Geçer?", "channel": "Akıl Oyunu", "duration": "11:59", "views": "18 B", "uploaded": "1 gün önce", "sponsored": false }

Workflow

  • Split raw text into individual video/content blocks using duration markers (e.g. 13:12, 0:07, Shorts) as delimiters
  • For each block, extract: duration/type, title, channel name, view count, upload recency
  • Detect sponsored content (marked with "Sponsorlu" prefix, no duration/views/upload pattern)
  • Detect Shorts (marked with "Shorts" label, often no channel/views shown or grouped)
  • Detect game/app promos (marked with "Oyna" and "oynatma" play-count instead of views)
  • Normalize Turkish number/date shorthand (B = bin/thousand, Mn = milyon/million, "gün/hafta/ay/yıl önce")
  • Group output by content type: Videos, Shorts, Sponsored, Games
  • Return clean structured list (JSON/table), preserving original order within each group

Examples

Example 1: Input: 13:12Valorant'ta En Nadir 80 ANMpri40 B görüntüleme • 7 gün önce Output:

JSON
{"duration": "13:12", "title": "Valorant'ta En Nadir 80 ANM", "channel": "pri", "views": "40000", "uploaded_relative": "7 gün önce"}

Example 2: Input: Shorts Popeyes 10 Peynirli Burger Abartı Mı?…158 B görüntüleme Output:

JSON
{"type": "short", "title": "Popeyes 10 Peynirli Burger Abartı Mı?", "views": "158000"}

Example 3: Input: 0:07Yemeksepeti 25 yıldır hep seninle!...SponsorluYemeksepeti Output:

JSON
{"type": "sponsored_ad", "brand": "Yemeksepeti", "duration": "0:07", "text": "25 yıldır hep seninle! Tam 25 yıldır seni balla bölmenin keyfini paylaşıyoruz."}

Example 4: Input: OynaFlow Legends25 Mn oynatmaPEGI 3 Output:

JSON
{"type": "game_ad", "title": "Flow Legends", "play_count": "25000000", "rating": "PEGI 3"}

Best Practices

  • Channel name usually immediately follows the title with no space/separator — split using the view-count pattern (\d+\s?(B|Mn)\s?görüntüleme) as an anchor, then work backward to isolate title vs. channel.
  • Treat "•" as the separator between view count and relative upload time.
  • Preserve original strings for numbers but also provide normalized numeric values (B×1,000, Mn×1,000,000).
  • Titles containing "…" indicate truncation — mark as "truncated": true rather than guessing full text.
  • Sponsored/ad blocks rarely follow the standard duration+title+channel+views pattern; identify them by the "Sponsorlu" keyword and handle separately.

Common Pitfalls

  • Don't assume every block has a channel name separate from title — Shorts often omit it.
  • Don't misparse "oynatma" (play count for games) as "görüntüleme" (views) — they are different metrics for different content types.
  • Don't drop the distinction between absolute duration timestamps (11:22) and the "Shorts" label — they signal different content types.
  • Don't try to translate Turkish text unless explicitly asked; preserve original language in output fields.
0
Grade B+AI Skill Framework
Scorecard
Criteria Breakdown
Quick Start
13/15
Workflow
13/15
Examples
17/20
Completeness
15/20
Format
14/15
Conciseness
13/15