UCLA Daily: Med Fetch
Health & Behavior news from UCLA Newsroom, no API key required
- ucla_data
- ucla_data
- segment_text
UCLAMedFetch is one of the fetch nodes in the UCLA Daily pack, and it's the simplest kind: it reads an RSS feed, parses it, and hands the items on to the next node in the pipeline. Nothing fancy, no API keys, no auth - just UCLA's public Health & Behavior news feed. If your lobby screen or morning brief should occasionally remind people that the campus research machine is doing interesting medical things, this is the node.
UCLA Daily is a custom-node pack from Jeffrey A. Brick that aggregates campus news and events into lobby-display cards. The design philosophy is "public feeds only, zero dependencies, never crash." Every fetcher in the pack takes UCLA_DATA in and returns it plus a segment_text string, so you can chain any combination of fetchers between DataInit and the card/pulse nodes at the end. Med Fetch slots in wherever you want health news.
How it works
The mechanism is a straight RSS pull. It fetches https://newsroom.ucla.edu/cats/health_+_behavior.xml (a category feed from the UCLA Newsroom), parses the XML, and converts items into the pack's standard event dicts. The HTTP work goes through the shared http_utils helper, which tries requests first for better error reporting and falls back to urllib from the standard library - so the node works even in a bare Python environment. If the feed is unreachable, the failure is logged into the errors[] list in the data dict and the pipeline keeps going instead of dying mid-graph.
Two small touches are worth knowing because they're typical of the whole pack: it runs IS_CHANGED (always re-fetch on each queue run), and it cleans up mojibake - curly quotes, em dashes, and other mangled Unicode that RSS feeds love to serve you.
The inputs
Just two that matter, plus the data input:
- ucla_data - the
UCLA_DATAdict fromUCLADailyDataInit. This is how the node joins the pipeline. - rss_url - defaults to the Health & Behavior feed. The tooltip says it plainly: change it only if the feed moves. You can point it at any Newsroom XML, though if you want arbitrary feeds,
UCLANewsroomFetchis the more flexible sibling. - max_items - 1–20, default 5. How many news items to pull. Five headlines keeps a card readable in the elevator; crank it up if you're feeding a text report instead.
Outputs
Two: ucla_data (the enriched pipeline dict, ready to chain into another fetcher or a card) and segment_text - the plain-text rendering of what was fetched. segment_text is what you wire into UCLALobbyCard or UCLANarrator if you want the raw listing rewritten into something friendlier.
Install
Search for UCLA Daily in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/jbrick2070/ComfyUI-UCLADaily.git
pip install qrcode pillow requests
Then restart ComfyUI. This specific node needs nothing extra - pure stdlib parsing - though requests (already in that pip line) makes the HTTP layer happier.
Common issues
The only realistic failure is the feed moving or UCLA rate-limiting a burst of re-fetches - remember, IS_CHANGED means every queue run hits the network. If you're iterating on card layout, don't leave Med Fetch in the graph while you tweak pixels; you're just hammering the Newsroom for data you're not using. Pull once, render, iterate.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| ucla_data | UCLA_DATA | — | |
| rss_url | STRING | https://newsroom.ucla.edu/cats/health_+_behavior.xml | UCLA Health & Behavior RSS feed URL. Change only if feed moves. |
| max_items | INT | 51–20 | Maximum number of news items to pull from the feed. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| ucla_data | UCLA_DATA | — |
| segment_text | STRING | — |