feat(meet-kevin): RSS poller for YouTube uploads

This commit is contained in:
Viktor Barzin 2026-05-21 19:36:22 +00:00
parent 8edcb070ed
commit 8ce3ede09c
4 changed files with 1237 additions and 0 deletions

View file

@ -0,0 +1,130 @@
"""YouTube RSS feed poller for Meet Kevin channel."""
import logging
from dataclasses import dataclass
from datetime import datetime
from xml.etree import ElementTree as ET
import httpx
logger = logging.getLogger(__name__)
# Atom and YouTube namespace mappings
_NAMESPACES = {
"a": "http://www.w3.org/2005/Atom",
"yt": "http://www.youtube.com/xml/schemas/2015",
"m": "http://search.yahoo.com/mrss/",
}
@dataclass(frozen=True)
class DiscoveredVideo:
"""A video discovered from YouTube RSS feed."""
youtube_video_id: str
title: str
description: str
published_at: datetime
thumbnail_url: str
async def fetch_feed(channel_id: str, client: httpx.AsyncClient) -> bytes:
"""Fetch YouTube RSS feed for a channel.
Args:
channel_id: YouTube channel ID (e.g., "UCUvvj5lwue7PspotMDjk5UA")
client: httpx AsyncClient for HTTP requests
Returns:
Raw XML bytes from the feed, or empty bytes on error.
HTTP errors are logged but do not raise.
"""
url = f"https://www.youtube.com/feeds/videos.xml?channel_id={channel_id}"
try:
response = await client.get(url, timeout=15.0)
response.raise_for_status()
return response.content
except httpx.HTTPError as e:
logger.warning("Failed to fetch feed from %s: %s", url, e)
return b""
def parse_feed(xml_bytes: bytes) -> list[DiscoveredVideo]:
"""Parse YouTube RSS feed XML and extract videos.
Args:
xml_bytes: Raw XML bytes from YouTube RSS feed
Returns:
List of DiscoveredVideo objects. Returns empty list on parse error,
empty input, or if no valid entries found.
Individual entries with missing required fields are skipped.
"""
if not xml_bytes:
return []
try:
root = ET.fromstring(xml_bytes)
except ET.ParseError as e:
logger.warning("Failed to parse feed XML: %s", e)
return []
videos: list[DiscoveredVideo] = []
for entry in root.findall("a:entry", _NAMESPACES):
try:
# Extract required fields
video_id_elem = entry.find("yt:videoId", _NAMESPACES)
title_elem = entry.find("a:title", _NAMESPACES)
published_elem = entry.find("a:published", _NAMESPACES)
# Extract media group (description and thumbnail)
media_group = entry.find("m:group", _NAMESPACES)
desc_elem = None
thumb_elem = None
if media_group is not None:
desc_elem = media_group.find("m:description", _NAMESPACES)
thumb_elem = media_group.find("m:thumbnail", _NAMESPACES)
# Skip entries with missing required fields
if (
video_id_elem is None
or video_id_elem.text is None
or title_elem is None
or title_elem.text is None
or published_elem is None
or published_elem.text is None
or thumb_elem is None
):
continue
# Parse published timestamp (handle Z suffix)
published_text = published_elem.text
published_text = published_text.replace("Z", "+00:00")
published_at = datetime.fromisoformat(published_text)
# Extract description (may be missing)
description = ""
if desc_elem is not None and desc_elem.text is not None:
description = desc_elem.text
# Extract thumbnail URL
thumbnail_url = thumb_elem.get("url", "")
if not thumbnail_url:
continue
video = DiscoveredVideo(
youtube_video_id=video_id_elem.text,
title=title_elem.text,
description=description,
published_at=published_at,
thumbnail_url=thumbnail_url,
)
videos.append(video)
except (ValueError, AttributeError) as e:
logger.warning("Failed to parse entry in feed: %s", e)
continue
return videos

963
tests/fixtures/meet_kevin_rss.xml vendored Normal file
View file

@ -0,0 +1,963 @@
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns:yt="http://www.youtube.com/xml/schemas/2015" xmlns:media="http://search.yahoo.com/mrss/" xmlns="http://www.w3.org/2005/Atom">
<link rel="self" href="http://www.youtube.com/feeds/videos.xml?channel_id=UCUvvj5lwue7PspotMDjk5UA"/>
<id>yt:channel:Uvvj5lwue7PspotMDjk5UA</id>
<yt:channelId>Uvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>Meet Kevin</title>
<link rel="alternate" href="https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2010-09-21T05:02:36+00:00</published>
<entry>
<id>yt:video:NwFzesbfgfY</id>
<yt:videoId>NwFzesbfgfY</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>The Labor Market is F**k'd</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=NwFzesbfgfY"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-21T15:22:13+00:00</published>
<updated>2026-05-21T17:58:12+00:00</updated>
<media:group>
<media:title>The Labor Market is F**k'd</media:title>
<media:content url="https://www.youtube.com/v/NwFzesbfgfY?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i3.ytimg.com/vi/NwFzesbfgfY/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Coupon Code MemorialDay26 expires SOON!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="947" average="5.00" min="1" max="5"/>
<media:statistics views="19442"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:h2lHHlxn1qU</id>
<yt:videoId>h2lHHlxn1qU</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>Shocking WARNINGS: Caleb Hammer 27-Year Old IT'S OVER</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=h2lHHlxn1qU"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-21T02:21:58+00:00</published>
<updated>2026-05-21T06:36:57+00:00</updated>
<media:group>
<media:title>Shocking WARNINGS: Caleb Hammer 27-Year Old IT'S OVER</media:title>
<media:content url="https://www.youtube.com/v/h2lHHlxn1qU?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i1.ytimg.com/vi/h2lHHlxn1qU/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Coupon Code MemorialDay26 expires SOON!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
Shocking WARNINGS: Caleb Hammer 27-Year Old BURIED
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="476" average="5.00" min="1" max="5"/>
<media:statistics views="16750"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:bvcjsiIKt5M</id>
<yt:videoId>bvcjsiIKt5M</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>SpaceX IPO **MASSIVE LOSSES REVEALED** [JUST OUT]</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=bvcjsiIKt5M"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-20T21:19:31+00:00</published>
<updated>2026-05-21T06:11:36+00:00</updated>
<media:group>
<media:title>SpaceX IPO **MASSIVE LOSSES REVEALED** [JUST OUT]</media:title>
<media:content url="https://www.youtube.com/v/bvcjsiIKt5M?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i3.ytimg.com/vi/bvcjsiIKt5M/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Coupon Code MemorialDay26 expires SOON!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
SpaceX IPO Docs **MASSIVELY LOSSES REVEALED** [JUST OUT]
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="1253" average="5.00" min="1" max="5"/>
<media:statistics views="43533"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:h74j-rwfYhA</id>
<yt:videoId>h74j-rwfYhA</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>Nvidia Earnings SHOCKER</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=h74j-rwfYhA"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-20T20:46:12+00:00</published>
<updated>2026-05-21T06:55:29+00:00</updated>
<media:group>
<media:title>Nvidia Earnings SHOCKER</media:title>
<media:content url="https://www.youtube.com/v/h74j-rwfYhA?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i1.ytimg.com/vi/h74j-rwfYhA/hqdefault.jpg" width="480" height="360"/>
<media:description>🔥 Alpha Membership: https://MeetKevin.com/
🤑 ReinvestAI: https://Reinvest.co/
📺 Stocks
Nvidia Earnings Results
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="1615" average="5.00" min="1" max="5"/>
<media:statistics views="62802"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:D4AVBmOB2wU</id>
<yt:videoId>D4AVBmOB2wU</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>OpenAI IPO!! THIS COULD END EVERYTHING!</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=D4AVBmOB2wU"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-20T17:35:35+00:00</published>
<updated>2026-05-21T07:24:45+00:00</updated>
<media:group>
<media:title>OpenAI IPO!! THIS COULD END EVERYTHING!</media:title>
<media:content url="https://www.youtube.com/v/D4AVBmOB2wU?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i1.ytimg.com/vi/D4AVBmOB2wU/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Coupon Code MemorialDay26 expires SOON!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
OpenAI IPO!! THIS COULD *CRASH* EVERYTHING!
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="872" average="5.00" min="1" max="5"/>
<media:statistics views="29005"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:5VJKrxaxw3M</id>
<yt:videoId>5VJKrxaxw3M</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>uh oh nvidia</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=5VJKrxaxw3M"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-20T15:22:59+00:00</published>
<updated>2026-05-21T06:12:03+00:00</updated>
<media:group>
<media:title>uh oh nvidia</media:title>
<media:content url="https://www.youtube.com/v/5VJKrxaxw3M?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i2.ytimg.com/vi/5VJKrxaxw3M/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Coupon Code MemorialDay26 expires SOON!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
uh oh nvidia
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="1048" average="5.00" min="1" max="5"/>
<media:statistics views="34606"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:huygLmrdLoQ</id>
<yt:videoId>huygLmrdLoQ</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>MASSIVELY SHORT</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=huygLmrdLoQ"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-19T15:51:16+00:00</published>
<updated>2026-05-20T08:13:48+00:00</updated>
<media:group>
<media:title>MASSIVELY SHORT</media:title>
<media:content url="https://www.youtube.com/v/huygLmrdLoQ?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i1.ytimg.com/vi/huygLmrdLoQ/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Coupon Code MemorialDay26 expires SOON!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="2058" average="5.00" min="1" max="5"/>
<media:statistics views="75066"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:gM7ZQaxQLls</id>
<yt:videoId>gM7ZQaxQLls</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>**JURY REACHES VERDICT ON ELON MUSK**</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=gM7ZQaxQLls"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-18T17:52:57+00:00</published>
<updated>2026-05-19T08:39:07+00:00</updated>
<media:group>
<media:title>**JURY REACHES VERDICT ON ELON MUSK**</media:title>
<media:content url="https://www.youtube.com/v/gM7ZQaxQLls?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i4.ytimg.com/vi/gM7ZQaxQLls/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Coupon Code MemorialDay26 IS LIVE!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
JURY REACHES VERDICT ON ELON MUSK VS SAM ALTMAN OPENAI
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="1140" average="5.00" min="1" max="5"/>
<media:statistics views="38949"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:2OG74U1mhQY</id>
<yt:videoId>2OG74U1mhQY</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>Prepare for WEDNESDAY | The NEXT WARNING.</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=2OG74U1mhQY"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-18T15:26:56+00:00</published>
<updated>2026-05-19T08:40:35+00:00</updated>
<media:group>
<media:title>Prepare for WEDNESDAY | The NEXT WARNING.</media:title>
<media:content url="https://www.youtube.com/v/2OG74U1mhQY?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i3.ytimg.com/vi/2OG74U1mhQY/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Couponcode MemorialDay26 LIVE!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
Prepare for WEDNESDAY | The NEXT WARNING. Nvidia earnings.
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="1782" average="5.00" min="1" max="5"/>
<media:statistics views="61235"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:QqOnX1zFoNg</id>
<yt:videoId>QqOnX1zFoNg</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>Stock Market WARNING *JUST* Issued by Citi &amp; Goldman</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=QqOnX1zFoNg"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-17T18:12:56+00:00</published>
<updated>2026-05-18T07:21:19+00:00</updated>
<media:group>
<media:title>Stock Market WARNING *JUST* Issued by Citi &amp; Goldman</media:title>
<media:content url="https://www.youtube.com/v/QqOnX1zFoNg?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i2.ytimg.com/vi/QqOnX1zFoNg/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Couponcode MemorialDay26 LIVE!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
Citi and Goldman issue warning
---=
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="1990" average="5.00" min="1" max="5"/>
<media:statistics views="61164"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:w7TDYgHlRzI</id>
<yt:videoId>w7TDYgHlRzI</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>JUST IN: Trump &amp; Private Credit BOMBSHELLS</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=w7TDYgHlRzI"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-16T19:24:50+00:00</published>
<updated>2026-05-19T22:50:07+00:00</updated>
<media:group>
<media:title>JUST IN: Trump &amp; Private Credit BOMBSHELLS</media:title>
<media:content url="https://www.youtube.com/v/w7TDYgHlRzI?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i4.ytimg.com/vi/w7TDYgHlRzI/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Couponcode MemorialDay26 LIVE!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
Trump insider trading and private credit
---=
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="1067" average="5.00" min="1" max="5"/>
<media:statistics views="31203"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:UYEnhY14PW4</id>
<yt:videoId>UYEnhY14PW4</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>Trump JUST BANNED Rental Properties: The 21st Century Housing Act</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=UYEnhY14PW4"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-16T13:34:18+00:00</published>
<updated>2026-05-19T22:48:32+00:00</updated>
<media:group>
<media:title>Trump JUST BANNED Rental Properties: The 21st Century Housing Act</media:title>
<media:content url="https://www.youtube.com/v/UYEnhY14PW4?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i2.ytimg.com/vi/UYEnhY14PW4/hqdefault.jpg" width="480" height="360"/>
<media:description>🚨 Couponcode MemorialDay26 LIVE!
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
Trump BANNING Rental Properties: The 21st Century Housing Act
---=
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="1805" average="5.00" min="1" max="5"/>
<media:statistics views="65192"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:D2osbJNrR0E</id>
<yt:videoId>D2osbJNrR0E</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>Why the Stock Market is FLIPPING</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=D2osbJNrR0E"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-15T19:13:07+00:00</published>
<updated>2026-05-19T21:54:24+00:00</updated>
<media:group>
<media:title>Why the Stock Market is FLIPPING</media:title>
<media:content url="https://www.youtube.com/v/D2osbJNrR0E?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i1.ytimg.com/vi/D2osbJNrR0E/hqdefault.jpg" width="480" height="360"/>
<media:description>Why the Stock Market is FLIPPING
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="1970" average="5.00" min="1" max="5"/>
<media:statistics views="70772"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:bwuerJFgUjU</id>
<yt:videoId>bwuerJFgUjU</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>MIRAN **JUST QUIT** the Fed! RATE HIKES</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=bwuerJFgUjU"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-14T18:40:08+00:00</published>
<updated>2026-05-15T07:22:11+00:00</updated>
<media:group>
<media:title>MIRAN **JUST QUIT** the Fed! RATE HIKES</media:title>
<media:content url="https://www.youtube.com/v/bwuerJFgUjU?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i3.ytimg.com/vi/bwuerJFgUjU/hqdefault.jpg" width="480" height="360"/>
<media:description>MIRAN **JUST QUIT** the Fed! RATE HIKES
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="1439" average="5.00" min="1" max="5"/>
<media:statistics views="51144"/>
</media:community>
</media:group>
</entry>
<entry>
<id>yt:video:_dWINUlG8Hw</id>
<yt:videoId>_dWINUlG8Hw</yt:videoId>
<yt:channelId>UCUvvj5lwue7PspotMDjk5UA</yt:channelId>
<title>INSANE FINDINGS: Elon Musk vs OpenAI Lawsuit</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=_dWINUlG8Hw"/>
<author>
<name>Meet Kevin</name>
<uri>https://www.youtube.com/channel/UCUvvj5lwue7PspotMDjk5UA</uri>
</author>
<published>2026-05-14T17:15:18+00:00</published>
<updated>2026-05-21T18:17:41+00:00</updated>
<media:group>
<media:title>INSANE FINDINGS: Elon Musk vs OpenAI Lawsuit</media:title>
<media:content url="https://www.youtube.com/v/_dWINUlG8Hw?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
<media:thumbnail url="https://i4.ytimg.com/vi/_dWINUlG8Hw/hqdefault.jpg" width="480" height="360"/>
<media:description>INSANE FINDINGS: Elon Musk vs OpenAI Lawsuit
🔥 Alpha Membership: https://MeetKevin.com
🤑 ReinvestAI: https://Reinvest.co/
---
🥰 Socials 🥰
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Twitter / X: https://twitter.com/realMeetKevin
TikTok: https://www.tiktok.com/@realmeetkevin
Instagram: https://www.instagram.com/meetkevin
🚀 Membership, Alerts, &amp; Courses 🚀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Email Staff@MeetKevin.com for course requests or support.
🏡 ReInvestAI &amp; HouseHack Inquries 🏡
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Considering investing in HouseHack/Reinvest? Read the offering circular, including disclosures, at https://househack.com - this video cannot be a solicitation.
Email ir@HouseHack.com for AI requests or investment support.
😇 Affiliate Links (Paid) 😇
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜 Some links are affiliate links and I may earn a commission at no extra cost to you.
➡️ Life Insurance: My favorite life insurance you can get in as little as 5 minutes! https://MeetKevin.com/life
➡️ Webull: My favorite stock app for charting and trades! https://MeetKevin.com/webull
➡️ HSA: Tax Deductions via a Health-Savings Account: https://MetKevin.com/hsa
➡️ Best banking app: https://MeetKevin.com/bank
➡️ Best Travel Credit Card: https://MeetKevin.com/capitalone
➡️ Single Stock to ETF Exchange: https://MeetKevin.com/cache
⚖️ Important Disclaimers ⚖️
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
📜This video or description does not constitute personalized financial, legal, real estate, investment, or other advice (we dont know your situation, so it's impossible to provide you personalized advice). Therefore, evaluate your own suitability for any perspective shared. Kevin does NOT make personalized recommendations.
📜Assume any referenced product or service is a paid promotion, though Kevin does his best to let ya know if a mention is paid or unpaid. While Kevins experience with a product or service may be good, your experience may suck - Kevin cant be responsible for that; so be warned &amp; conduct your own diligence.
📜Any mention of stocks or analysis may be reliable as generic information today, but not tomorrow or even hours later. Recognize that businesses and people change rapidly. Therefore, the accuracy of information cannot be guaranteed.
📜Kevin Paffrath is licensed with the California Department of Real Estate under 01893132. His broker is House Hack, license 02236137. House Hack, inc. does business as Reinvest and/or HouseHack. ReinvestAI may make mistakes and is not guaranteed to boost your net worth.
🛑 Sponsorships 🛑
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
We are NOT taking sponsors at this time.</media:description>
<media:community>
<media:starRating count="871" average="5.00" min="1" max="5"/>
<media:statistics views="33896"/>
</media:community>
</media:group>
</entry>
</feed>

View file

@ -0,0 +1,144 @@
"""Tests for RSS feed polling."""
from datetime import datetime, timezone
from pathlib import Path
import httpx
import pytest
from unittest.mock import AsyncMock
from services.meet_kevin_watcher.rss_poller import DiscoveredVideo, parse_feed, fetch_feed
@pytest.fixture
def fixture_xml() -> bytes:
"""Load real YouTube RSS feed fixture."""
fixture_path = Path(__file__).parent.parent.parent / "fixtures" / "meet_kevin_rss.xml"
return fixture_path.read_bytes()
class TestParseFeed:
"""Test parse_feed with various inputs."""
def test_parse_feed_real_fixture(self, fixture_xml: bytes):
"""parse_feed returns videos from real YouTube RSS feed."""
videos = parse_feed(fixture_xml)
# Should return multiple videos (fixture has 15 entries)
assert len(videos) >= 1
assert isinstance(videos, list)
# Each video should have correct structure
video = videos[0]
assert isinstance(video, DiscoveredVideo)
assert len(video.youtube_video_id) == 11
assert isinstance(video.title, str) and len(video.title) > 0
assert isinstance(video.description, str)
assert isinstance(video.published_at, datetime)
assert video.published_at.tzinfo is not None
assert video.thumbnail_url.startswith("https://")
def test_parse_feed_empty_input(self):
"""parse_feed returns empty list on empty input."""
result = parse_feed(b"")
assert result == []
def test_parse_feed_invalid_xml(self):
"""parse_feed returns empty list on malformed XML."""
result = parse_feed(b"<?xml version='1.0'?><not-a-feed/>")
assert result == []
def test_parse_feed_missing_fields(self):
"""parse_feed skips entries with missing required fields."""
# Valid feed header but entry missing video_id
xml = b"""<?xml version="1.0"?>
<feed xmlns:yt="http://www.youtube.com/xml/schemas/2015" xmlns:media="http://search.yahoo.com/mrss/" xmlns="http://www.w3.org/2005/Atom">
<entry>
<title>Video without ID</title>
<published>2026-05-21T15:22:13+00:00</published>
<media:group>
<media:description>Test</media:description>
<media:thumbnail url="https://example.com/img.jpg"/>
</media:group>
</entry>
</feed>"""
result = parse_feed(xml)
assert result == []
def test_discovered_video_is_frozen(self):
"""DiscoveredVideo is frozen (immutable)."""
video = DiscoveredVideo(
youtube_video_id="abc123abc12",
title="Test",
description="Test desc",
published_at=datetime(2026, 5, 21, tzinfo=timezone.utc),
thumbnail_url="https://example.com/img.jpg",
)
# Should be hashable (frozen=True)
assert hash(video) is not None
# Should not be mutable
with pytest.raises(AttributeError):
video.title = "Changed" # type: ignore
class TestFetchFeed:
"""Test fetch_feed with HTTP client."""
@pytest.mark.asyncio
async def test_fetch_feed_success(self):
"""fetch_feed returns bytes on successful HTTP GET."""
mock_response = AsyncMock()
mock_response.content = b"<xml>data</xml>"
# raise_for_status is synchronous, so don't mock it as async
mock_response.raise_for_status = lambda: None
mock_client = AsyncMock(spec=httpx.AsyncClient)
mock_client.get.return_value = mock_response
result = await fetch_feed("UCUvvj5lwue7PspotMDjk5UA", mock_client)
assert result == b"<xml>data</xml>"
mock_client.get.assert_called_once()
# Check timeout is set to 15.0
call_kwargs = mock_client.get.call_args[1]
assert call_kwargs["timeout"] == 15.0
@pytest.mark.asyncio
async def test_fetch_feed_http_error(self):
"""fetch_feed returns empty bytes on HTTP error."""
mock_client = AsyncMock(spec=httpx.AsyncClient)
mock_client.get.side_effect = httpx.HTTPError("Connection failed")
result = await fetch_feed("UCUvvj5lwue7PspotMDjk5UA", mock_client)
assert result == b""
@pytest.mark.asyncio
async def test_fetch_feed_uses_correct_url(self):
"""fetch_feed constructs correct YouTube RSS feed URL."""
mock_response = AsyncMock()
mock_response.content = b"<xml/>"
# raise_for_status is synchronous, so don't mock it as async
mock_response.raise_for_status = lambda: None
mock_client = AsyncMock(spec=httpx.AsyncClient)
mock_client.get.return_value = mock_response
await fetch_feed("UCUvvj5lwue7PspotMDjk5UA", mock_client)
# Verify URL was constructed correctly
call_args = mock_client.get.call_args[0]
assert "https://www.youtube.com/feeds/videos.xml" in call_args[0]
assert "channel_id=UCUvvj5lwue7PspotMDjk5UA" in call_args[0]
@pytest.mark.asyncio
async def test_fetch_feed_timeout_error(self):
"""fetch_feed returns empty bytes on timeout."""
mock_client = AsyncMock(spec=httpx.AsyncClient)
mock_client.get.side_effect = httpx.TimeoutException("Timeout")
result = await fetch_feed("UCUvvj5lwue7PspotMDjk5UA", mock_client)
assert result == b""