A Python script to export your Omnivore RSS subscriptions to OPML format. This makes it easy to backup your subscriptions or migrate them to another RSS reader.
- Exports all RSS subscriptions to OPML format
- Groups feeds by folder in the OPML output
- Option to exclude feeds that have never been successfully fetched
- Displays detailed information about each subscription
- Supports environment variables for configuration
- Python 3.7+
- Omnivore API token
requests
andpython-dotenv
packages
- Clone this repository:
git clone <repository-url>
cd omnivore-rss-export
- Install required packages:
pip install requests python-dotenv
- Create a
.env
file in the project directory with your Omnivore API configuration:
OMNIVORE_API_TOKEN=your_api_token_here
OMNIVORE_HOST=api-prod.omnivore.app
OMNIVORE_GRAPH_QL_PATH=/api/graphql
To get your API token:
- Go to your Omnivore settings
- Navigate to the API section
- Generate a new API token
To export all your RSS subscriptions:
python omnivore_rss_export.py
To export only feeds that have been successfully fetched at least once:
python omnivore_rss_export.py --exclude-unfetched
The script will:
- Display information about each subscription, including:
- Name
- URL
- Folder
- Description
- Created date
- Last fetched date
- Various subscription settings
- Create an OPML file named
omnivore_rss_export_YYYYMMDD.opml
in the current directory
The OPML file can be imported into most RSS readers, including:
- Feedly
- Inoreader
- NewsBlur
- And many others
The script displays detailed information for each subscription:
Name: Example Feed
URL: https://example.com/feed
Folder: Technology
Description: Example feed description
Created at: 2024-01-09
Last fetched at: 2024-01-09
Count: 42
Is private: false
Auto add to library: true
Fetch content: true
Variable | Description |
---|---|
OMNIVORE_API_TOKEN |
Your Omnivore API token |
OMNIVORE_HOST |
Omnivore API host (usually api-prod.omnivore.app ) |
OMNIVORE_GRAPH_QL_PATH |
GraphQL endpoint path (usually /api/graphql ) |
The script includes comprehensive error handling:
- Validates required environment variables
- Reports API errors with detailed messages
- Provides debugging information for API responses
- Handles invalid dates and missing fields gracefully