Skip to content

S1D1T1/NetNewsWire

 
 

Repository files navigation

NetNewsWire with YouTube Enhancement

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.

What This Does

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.

Without Video descriptions & thumbnails:

Screenshot 2025-07-13 at 3 06 20 PM

With Video descriptions & thumbnails:

Screenshot 2025-07-13 at 3 05 11 PM

Why This Fork Exists

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.

Technical Approach

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:

  1. When an article is displayed, it checks if the URL is a YouTube video
  2. If so, it extracts the video ID and fetches the description via YouTube Data API v3
  3. 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

Future

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"

Setup

  1. Clone this fork and build in Xcode (see original NetNewsWire build instructions)
  2. Get a YouTube Data API v3 key from Google Cloud Console
  3. 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

About

RSS reader for macOS and iOS. Extending to show youtube video descriptions, durations, thumbs

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 65.1%
  • HTML 20.8%
  • Objective-C 7.7%
  • CSS 3.7%
  • Python 1.1%
  • JavaScript 0.8%
  • Other 0.8%