Fix comments (Python API), add dislike bar
Comments: switch from CLI --write-comments to yt-dlp Python API with getcomments=True — more reliable, proper extractor_args dict format Dislikes: add dislike_count column, fetch from returnyoutubedislike.com after each video metadata upsert (5s timeout, non-fatal) UI: replace emoji like count with a like/dislike ratio bar — blue fill showing like proportion, labels on each end; views stay in meta row Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -894,7 +894,6 @@ export default function Watch() {
|
||||
<div className="flex items-center gap-2 text-sm text-zinc-500 flex-wrap">
|
||||
{date && <span>{date}</span>}
|
||||
{video?.view_count > 0 && <><span>·</span><span>{formatViews(video.view_count)}</span></>}
|
||||
{video?.like_count > 0 && <><span>·</span><span>👍 {formatViews(video.like_count).replace(" views", "")}</span></>}
|
||||
{video?.category && <><span>·</span><span>{video.category}</span></>}
|
||||
{video?.duration_seconds && (
|
||||
<><span>·</span>
|
||||
@@ -912,6 +911,26 @@ export default function Watch() {
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Like/dislike bar */}
|
||||
{video?.like_count > 0 && (
|
||||
<div className="flex flex-col gap-1 w-full">
|
||||
<div className="flex justify-between text-xs text-zinc-500">
|
||||
<span>{formatViews(video.like_count).replace(" views", "")} likes</span>
|
||||
{video?.dislike_count > 0 && <span>{formatViews(video.dislike_count).replace(" views", "")} dislikes</span>}
|
||||
</div>
|
||||
<div className="h-1 w-full bg-zinc-800 rounded-full overflow-hidden">
|
||||
<div
|
||||
className="h-full bg-blue-500 rounded-full"
|
||||
style={{
|
||||
width: video?.dislike_count > 0
|
||||
? `${(video.like_count / (video.like_count + video.dislike_count)) * 100}%`
|
||||
: "100%",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Actions */}
|
||||
<div className="flex items-center gap-2 flex-wrap">
|
||||
{!dlComplete && !isDownloading && !downloadMut.isPending && (
|
||||
|
||||
Reference in New Issue
Block a user