bbc-news
Fetch and display BBC News stories from various sections and regions via RSS feeds. Use when the user asks for BBC news, UK news headlines, world news from BBC, or news from specific BBC sections (technology, business, politics, science, health, entertainment, regional UK news, or world regions).
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install openclaw-skills-bbc-news
Repository
Skill path: skills/ddrayne/bbc-news
Fetch and display BBC News stories from various sections and regions via RSS feeds. Use when the user asks for BBC news, UK news headlines, world news from BBC, or news from specific BBC sections (technology, business, politics, science, health, entertainment, regional UK news, or world regions).
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: openclaw.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install bbc-news into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/openclaw/skills before adding bbc-news to shared team environments
- Use bbc-news for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: bbc-news
description: Fetch and display BBC News stories from various sections and regions via RSS feeds. Use when the user asks for BBC news, UK news headlines, world news from BBC, or news from specific BBC sections (technology, business, politics, science, health, entertainment, regional UK news, or world regions).
---
# BBC News
Fetch top stories from BBC News across different sections and regions.
## Quick Start
Fetch top stories:
```bash
python3 scripts/bbc_news.py
```
Fetch from specific section:
```bash
python3 scripts/bbc_news.py uk
python3 scripts/bbc_news.py world
python3 scripts/bbc_news.py technology
```
List all available sections:
```bash
python3 scripts/bbc_news.py --list
```
## Available Sections
### Main Sections
- `top` - Top stories (default)
- `uk` - UK news
- `world` - World news
- `business` - Business news
- `politics` - Politics
- `health` - Health news
- `education` - Education
- `science` - Science & Environment
- `technology` - Technology news
- `entertainment` - Entertainment & Arts
### UK Regional
- `england` - England news
- `scotland` - Scotland news
- `wales` - Wales news
- `northern-ireland` - Northern Ireland news
### World Regions
- `africa` - Africa news
- `asia` - Asia news
- `australia` - Australia news
- `europe` - Europe news
- `latin-america` - Latin America news
- `middle-east` - Middle East news
- `us-canada` - US & Canada news
## Options
**Limit number of stories:**
```bash
python3 scripts/bbc_news.py world --limit 5
```
**JSON output:**
```bash
python3 scripts/bbc_news.py technology --json
```
## Examples
Get top 5 UK stories:
```bash
python3 scripts/bbc_news.py uk --limit 5
```
Get Scotland news in JSON:
```bash
python3 scripts/bbc_news.py scotland --json
```
Get latest technology headlines:
```bash
python3 scripts/bbc_news.py technology --limit 3
```
## Dependencies
Requires `feedparser`:
```bash
pip3 install feedparser
```
## Resources
### scripts/bbc_news.py
Python CLI that fetches and displays BBC News stories from RSS feeds. Supports all major BBC sections and regions, with text and JSON output formats.
### references/feeds.md
Complete list of BBC News RSS feed URLs organized by section and region.
---
## Referenced Files
> The following files are referenced in this skill and included for context.
### scripts/bbc_news.py
```python
#!/usr/bin/env python3
"""
BBC News CLI - Fetch and display BBC News stories from RSS feeds
"""
import argparse
import sys
from datetime import datetime
try:
import feedparser
except ImportError:
print("Error: feedparser library not found. Install with: pip install feedparser", file=sys.stderr)
sys.exit(1)
# BBC News RSS feeds
FEEDS = {
"top": "https://feeds.bbci.co.uk/news/rss.xml",
"uk": "https://feeds.bbci.co.uk/news/uk/rss.xml",
"world": "https://feeds.bbci.co.uk/news/world/rss.xml",
"business": "https://feeds.bbci.co.uk/news/business/rss.xml",
"politics": "https://feeds.bbci.co.uk/news/politics/rss.xml",
"health": "https://feeds.bbci.co.uk/news/health/rss.xml",
"education": "https://feeds.bbci.co.uk/news/education/rss.xml",
"science": "https://feeds.bbci.co.uk/news/science_and_environment/rss.xml",
"technology": "https://feeds.bbci.co.uk/news/technology/rss.xml",
"entertainment": "https://feeds.bbci.co.uk/news/entertainment_and_arts/rss.xml",
"england": "https://feeds.bbci.co.uk/news/england/rss.xml",
"scotland": "https://feeds.bbci.co.uk/news/scotland/rss.xml",
"wales": "https://feeds.bbci.co.uk/news/wales/rss.xml",
"northern-ireland": "https://feeds.bbci.co.uk/news/northern_ireland/rss.xml",
"africa": "https://feeds.bbci.co.uk/news/world/africa/rss.xml",
"asia": "https://feeds.bbci.co.uk/news/world/asia/rss.xml",
"australia": "https://feeds.bbci.co.uk/news/world/australia/rss.xml",
"europe": "https://feeds.bbci.co.uk/news/world/europe/rss.xml",
"latin-america": "https://feeds.bbci.co.uk/news/world/latin_america/rss.xml",
"middle-east": "https://feeds.bbci.co.uk/news/world/middle_east/rss.xml",
"us-canada": "https://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml",
}
def fetch_news(section="top", limit=10, format="text"):
"""Fetch BBC News stories from RSS feed"""
if section not in FEEDS:
print(f"Error: Unknown section '{section}'", file=sys.stderr)
print(f"Available sections: {', '.join(sorted(FEEDS.keys()))}", file=sys.stderr)
return 1
feed_url = FEEDS[section]
feed = feedparser.parse(feed_url)
if feed.bozo:
print(f"Error: Failed to parse feed from {feed_url}", file=sys.stderr)
return 1
entries = feed.entries[:limit]
if format == "json":
import json
stories = []
for entry in entries:
stories.append({
"title": entry.title,
"link": entry.link,
"description": entry.get("description", ""),
"published": entry.get("published", ""),
})
print(json.dumps(stories, indent=2))
else:
# Text format
section_title = feed.feed.get("title", f"BBC News - {section.title()}")
print(f"\n{section_title}")
print("=" * len(section_title))
print()
for i, entry in enumerate(entries, 1):
print(f"{i}. {entry.title}")
if hasattr(entry, "description") and entry.description:
# Strip HTML tags from description
import re
desc = re.sub(r'<[^>]+>', '', entry.description)
print(f" {desc}")
print(f" π {entry.link}")
if hasattr(entry, "published"):
print(f" π
{entry.published}")
print()
return 0
def list_sections():
"""List all available sections"""
print("\nAvailable BBC News sections:")
print("=" * 40)
print("\nMain Sections:")
main = ["top", "uk", "world", "business", "politics", "health",
"education", "science", "technology", "entertainment"]
for section in main:
if section in FEEDS:
print(f" β’ {section}")
print("\nUK Regional:")
regional = ["england", "scotland", "wales", "northern-ireland"]
for section in regional:
if section in FEEDS:
print(f" β’ {section}")
print("\nWorld Regions:")
world = ["africa", "asia", "australia", "europe",
"latin-america", "middle-east", "us-canada"]
for section in world:
if section in FEEDS:
print(f" β’ {section}")
print()
def main():
parser = argparse.ArgumentParser(
description="Fetch BBC News stories from RSS feeds",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
Examples:
%(prog)s # Top stories (default)
%(prog)s uk # UK news
%(prog)s world --limit 5 # Top 5 world stories
%(prog)s technology --json # Technology news in JSON format
%(prog)s --list # List all available sections
"""
)
parser.add_argument(
"section",
nargs="?",
default="top",
help="News section (default: top)"
)
parser.add_argument(
"-l", "--limit",
type=int,
default=10,
help="Number of stories to fetch (default: 10)"
)
parser.add_argument(
"-f", "--format",
choices=["text", "json"],
default="text",
help="Output format (default: text)"
)
parser.add_argument(
"--list",
action="store_true",
help="List all available sections"
)
args = parser.parse_args()
if args.list:
list_sections()
return 0
return fetch_news(args.section, args.limit, args.format)
if __name__ == "__main__":
sys.exit(main())
```
---
## Skill Companion Files
> Additional files collected from the skill directory layout.
### README.md
```markdown
# BBC News Skill
A Clawdbot skill for fetching BBC News stories from various sections and regions via RSS feeds.
## Features
- π° **Multiple Sections**: Top stories, UK, World, Business, Politics, Health, Education, Science, Technology, Entertainment
- π **UK Regional News**: England, Scotland, Wales, Northern Ireland
- πΊοΈ **World Regions**: Africa, Asia, Australia, Europe, Latin America, Middle East, US & Canada
- π **Flexible Output**: Text or JSON format
- βοΈ **Customizable**: Limit number of stories
## Installation
### Via ClawdHub
```bash
clawdhub install bbc-news
```
### Manual Installation
```bash
# Clone the repo
git clone https://github.com/ddrayne/bbc-news-skill.git ~/.clawdbot/skills/bbc-news
# Install dependencies
pip3 install feedparser
```
## Usage
### With Clawdbot
Ask your agent:
- "What's the latest BBC news?"
- "Show me UK technology news from BBC"
- "Get top 5 Scotland stories"
### Direct Script Usage
```bash
# Top stories (default)
python3 ~/.clawdbot/skills/bbc-news/scripts/bbc_news.py
# Specific section
python3 ~/.clawdbot/skills/bbc-news/scripts/bbc_news.py technology
# Limit results
python3 ~/.clawdbot/skills/bbc-news/scripts/bbc_news.py uk --limit 5
# JSON output
python3 ~/.clawdbot/skills/bbc-news/scripts/bbc_news.py world --json
# List all sections
python3 ~/.clawdbot/skills/bbc-news/scripts/bbc_news.py --list
```
## Available Sections
### Main Sections
`top`, `uk`, `world`, `business`, `politics`, `health`, `education`, `science`, `technology`, `entertainment`
### UK Regional
`england`, `scotland`, `wales`, `northern-ireland`
### World Regions
`africa`, `asia`, `australia`, `europe`, `latin-america`, `middle-east`, `us-canada`
## Dependencies
- Python 3
- feedparser (`pip3 install feedparser`)
## License
MIT
```
### _meta.json
```json
{
"owner": "ddrayne",
"slug": "bbc-news",
"displayName": "BBC News",
"latest": {
"version": "1.0.0",
"publishedAt": 1768398865276,
"commit": "https://github.com/clawdbot/skills/commit/ef57d6554090fc211e0a47d0ece93331656fb2dd"
},
"history": []
}
```
### references/feeds.md
```markdown
# BBC News RSS Feeds
BBC News provides RSS feeds for different sections and regions.
## Main Feeds
| Section | Feed URL |
|---------|----------|
| UK | https://feeds.bbci.co.uk/news/uk/rss.xml |
| World | https://feeds.bbci.co.uk/news/world/rss.xml |
| Business | https://feeds.bbci.co.uk/news/business/rss.xml |
| Politics | https://feeds.bbci.co.uk/news/politics/rss.xml |
| Health | https://feeds.bbci.co.uk/news/health/rss.xml |
| Education | https://feeds.bbci.co.uk/news/education/rss.xml |
| Science & Environment | https://feeds.bbci.co.uk/news/science_and_environment/rss.xml |
| Technology | https://feeds.bbci.co.uk/news/technology/rss.xml |
| Entertainment & Arts | https://feeds.bbci.co.uk/news/entertainment_and_arts/rss.xml |
## Regional Feeds
| Region | Feed URL |
|--------|----------|
| England | https://feeds.bbci.co.uk/news/england/rss.xml |
| Scotland | https://feeds.bbci.co.uk/news/scotland/rss.xml |
| Wales | https://feeds.bbci.co.uk/news/wales/rss.xml |
| Northern Ireland | https://feeds.bbci.co.uk/news/northern_ireland/rss.xml |
## World Regions
| Region | Feed URL |
|--------|----------|
| Africa | https://feeds.bbci.co.uk/news/world/africa/rss.xml |
| Asia | https://feeds.bbci.co.uk/news/world/asia/rss.xml |
| Australia | https://feeds.bbci.co.uk/news/world/australia/rss.xml |
| Europe | https://feeds.bbci.co.uk/news/world/europe/rss.xml |
| Latin America | https://feeds.bbci.co.uk/news/world/latin_america/rss.xml |
| Middle East | https://feeds.bbci.co.uk/news/world/middle_east/rss.xml |
| US & Canada | https://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml |
## Top Stories
| Feed | URL |
|------|-----|
| Top Stories | https://feeds.bbci.co.uk/news/rss.xml |
```