feat: scrape video cards and verify against real markup in headless Chrome

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
IgorVolochay
2026-10-25 12:07:08 +03:00
co-authored by Claude Sonnet 5.5
parent 386b88bab5
commit 6de9e9656c
6 changed files with 398 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
<!-- Synthetic: modelled on the search-result card structure observed on youtube.com on 2026-10-25;
the VidIQ blocks copy the structure of home-card.html. -->
<ytd-video-renderer>
<div id="dismissible">
<ytd-thumbnail>
<a id="thumbnail" href="/watch?v=pyV68KvUwlw&amp;pp=ygUSbWluZWNyYWZ0IHNwZWVkcnVu">
<img src="https://i.ytimg.com/vi/pyV68KvUwlw/hq720.jpg?sqp=abc&amp;rs=def">
<div id="overlays"><span id="text" aria-label="1 минута 29 секунд">1:29</span></div>
</a>
</ytd-thumbnail>
<div class="text-wrapper">
<div id="meta">
<div id="title-wrapper">
<h3 class="title-and-badge">
<a id="video-title" href="/watch?v=pyV68KvUwlw&amp;pp=ygUSbWluZWNyYWZ0IHNwZWVkcnVu"
aria-label="Minecraft Beaten In 53 Seconds [FWR] 1 минута 29 секунд" title="Minecraft Beaten In 53 Seconds [FWR]">
<yt-formatted-string>Minecraft Beaten In 53 Seconds [FWR]</yt-formatted-string>
</a>
</h3>
</div>
<ytd-video-meta-block>
<div id="metadata">
<div id="byline-container">
<ytd-channel-name id="channel-name"><div id="container"><div id="text-container">
<yt-formatted-string id="text" title="HanabiYaki"><a href="/@HanabiYaki">HanabiYaki</a></yt-formatted-string>
</div></div></ytd-channel-name>
</div>
<div id="metadata-line">
<span class="inline-metadata-item">5,1&nbsp;млн</span>
<span class="inline-metadata-item">2 г. назад</span>
<div class="vidiq-scope">
<span data-vidiq-subscriber-count="">111&nbsp;тыс.</span><span>подписчики</span>
</div>
</div>
</div>
<span class="inline-video-stats vidiq-scope">
<div data-hover-popover="VphPopover"><span>29 VPH</span></div>
<div data-hover-popover="OutlierPopover">
<a href="https://app.vidiq.com/outliers?utm_source=chrome&amp;outlier_score=7.456&amp;video_id=pyV68KvUwlw"><span>7.5x</span></a>
</div>
</span>
</ytd-video-meta-block>
</div>
</div>
</div>
</ytd-video-renderer>