This is a fork of NetNewsWire that automatically fetches YouTube video description, duration, & thumbnail for YouTube RSS feeds.
NOTE: GOOGLE API KEY IS REQUIRED Currently, the key must be inserted in the source, so you must be able to build this project in xcode in order to try out the feature. Future improvement: read the API KEY from a config file, or allow user to supply via UI. Once I have that, I can post a runnable binary.
YouTube channels' RSS feed only includes video titles - no descriptions or transcripts. This enhancement automatically fetches and displays the full video description when you select a YouTube video in your feed.
It also indicates when entries are youtube "shorts", by prepending 📱 to the item's title in the timeline.
YouTube's RSS feeds are sparse, containing only:
- Video title
- Link to YouTube
- Thumbnail
- Basic metadata
The actual video description (which often contains timestamps, links, and important context) is not included in the RSS feed. This fork adds that missing information by making YouTube API calls when you select a video in the timeline. In short, it's the stuff I use to know if I actually want to watch.
This enhancement only uses Google's official YouTube APIs. (No webscraping)
This enhancement works at the display layer rather than modifying NetNewsWire's core RSS parsing:
- When an article is displayed, it checks if the URL is a YouTube video
- If so, it extracts the video ID and fetches the description via YouTube Data API v3
- The description is then injected into the article view using JavaScript
This approach was chosen to:
- Minimize changes to NetNewsWire's architecture
- Only fetch data for videos you actually view (API efficiency)
- Keep the enhancement completely separate from core RSS functionality
The entire implementation consists of:
- couple lines added to
ArticleStringFormatter
for detecting and displaying YouTube Shorts titles (prepend "📱") - 5 lines added to
DetailWebViewController.swift
to check for YouTube videos and call the enhancement - One new file,
YouTubeVideoInfo.swift
containing all YouTube-specific logic
batch retrieve/ import all YT subscriptions as feeds.
show some/all of transcript. (no official YouTube API, but solutions exist, such as python library, "youtube-transcript-api"
- Clone this fork and build in Xcode (see original NetNewsWire build instructions)
- Get a YouTube Data API v3 key from Google Cloud Console
- Add your API key to
YouTubeVideoInfo.swift
:static let apiKey = "YOUR_API_KEY_HERE"
You MUST insert an API Key, and rebuild the app, or no video descriptions will appear