Insights

AI-Powered Content Platform for Ingestion, Analysis & Social Media Publishing

Turn RSS feeds, podcasts, YouTube videos, articles, GitHub repos, and images into summaries, generated articles, and platform-ready social posts. Transcribe with Whisper, generate with OpenAI or local Ollama, and schedule/publish to LinkedIn, Threads, Facebook, and X/Twitter from one self-hosted Flask UI.

What started as a podcast transcription tool has grown into a complete content pipeline: ingest any source, let AI do the heavy lifting, and push polished posts out on your schedule.

Content sources

Ingest from anywhere — Insights normalizes it all into a single processing pipeline.

RSS feeds Audio podcasts and text/news feeds with automatic metadata parsing.
YouTube Channels, playlists, or single videos — audio is extracted via yt-dlp and transcribed.
Article URLs Any web page, extracted via trafilatura with Open Graph images.
GitHub repos Paste a repo URL to pull metadata and README content as a source.
Images Drop in images and use a vision model to generate grounded posts.
Raw text Paste anything — notes, transcripts, briefs — and process it directly.

AI processing

Powered by OpenAI by default, with optional routing to a local Ollama instance for text and vision.

Transcription mlx-whisper (Apple Silicon), faster-whisper, or the OpenAI Whisper API.
Summarization Concise, markdown-formatted summaries of transcripts and articles.
Action items Pull actionable tasks and follow-ups from any processed content.
Article generation Blog posts, news articles, opinion pieces, or technical deep-dives.
Article refinement Iteratively improve generated articles with AI-assisted feedback.
Social copy Platform-tuned posts for LinkedIn, Threads, X/Twitter, Facebook, and Instagram.

Command Center

A single screen for generating, editing, and queuing social posts from any source.

Publishing & scheduling

Connect each platform once, then queue posts and let the background worker publish them.

LinkedIn OAuth posting with rich link previews and image support.
Threads OAuth posting via the Meta Threads API with text and images.
Facebook Pages OAuth posting with text and optional image attachments.
X / Twitter OAuth 2.0 + PKCE for v2 API text and chunked image uploads.
Time slots Recurring posting times per day-of-week and per platform.
Auto-queue New posts drop into the next available slot automatically.
Daily limits Per-platform caps so you don't spam your audience.
Drag-and-drop Reorder the queue, post now, or reschedule any pending post.

Integrations

OpenAI Ollama (local) Whisper JIRA GitHub Unsplash Pexels Pixabay Cloudinary yt-dlp trafilatura Swagger / OpenAPI

Get started

Self-hosted Flask app. Python 3.11+ and an OpenAI API key recommended.

  1. Clone the repo and create a virtualenv: python3 -m venv venv && source venv/bin/activate
  2. Install dependencies: python -m pip install -r requirements.txt
  3. Copy .env.example to .env and set OPENAI_API_KEY (plus any platform OAuth credentials you want)
  4. Run the web UI: python insights_web.py and open http://localhost:5001

For one-off audio processing from the terminal:

python insights.py path/to/podcast.mp3

Use cases