๐ŸŽ Get the FREE AI Skills Starter Guide โ€” Subscribe โ†’
BytesAgainBytesAgain
๐Ÿฆ€ ClawHub

spotify-news-digest

by @ibillxia

Scrape and summarize Spotify-related news from multiple sources (Spotify official blogs, engineering/research/newsroom, TechCrunch, The Verge, Music Business...

Versionv1.0.1
๐Ÿ’ก Examples

One-Time Digest (Last 24 Hours)

cd /projects/.openclaw/skills/spotify-news-digest
python3 scripts/generate_digest.py

Last 7 Days (Broader Coverage)

python3 scripts/generate_digest.py --hours 168

Save to Markdown File

python3 scripts/generate_digest.py --hours 24 --output /tmp/spotify_digest.md


โš™๏ธ Configuration

Add / Remove Sources

Edit config/sources.json:
{
  "sources": [
    {
      "name": "My Custom Source",
      "type": "rss",
      "url": "https://example.com/feed/",
      "language": "en",
      "category": "media",
      "keyword_filter": "spotify"
    }
  ],
  "settings": {
    "max_news_per_source": 15,
    "final_output_count": 20,
    "similarity_threshold": 0.65,
    "timeout": 12,
    "keyword_filter_default": "spotify"
  }
}

keyword_filter: When set, only articles containing this keyword (case-insensitive) in title or summary are included. Leave empty for official Spotify feeds that are already Spotify-only.

_disabled: true: Mark a source to skip it at runtime without deleting it.

> Security: Only add public news domains to sources.json. Do not add intranet, VPN, or cloud metadata URLs โ€” they could be fetched directly via RSS without domain-allowlist filtering.

Extend the DDG Domain Allowlist

If you add sources that are reachable via DDG News search (not RSS), also add their domain to ALLOWED_DDG_DOMAINS near the top of scripts/fetch_spotify_news.py:
ALLOWED_DDG_DOMAINS: tuple = (
    'atspotify.com',
    'techcrunch.com',
    ...
    'your-new-domain.com',  # โ† add here
)

Tune Deduplication

In scripts/process_spotify_news.py:
processor = SpotifyNewsProcessor(similarity_threshold=0.65)

0.5 = aggressive dedup | 0.8 = loose dedup

Tune Source Authority Weights

In process_spotify_news.py, edit source_weight:
source_weight = {
    'Spotify Engineering Blog': 90,
    'Spotify Newsroom': 80,
    'TechCrunch': 60,
    # Add your custom sources here
}


๐Ÿ“‹ Tips & Best Practices

No articles fetched (0 ๆก)

Most likely a network restriction on RSS endpoints.

# Test direct RSS access
curl -I https://engineering.atspotify.com/feed/

Test DDG search fallback

python3 -c " from ddgs import DDGS with DDGS() as d: r = list(d.news('spotify new feature', max_results=3, timelimit='w')) print(r) "

If RSS is blocked but DDG works, the skill will still return results via the search fallback. This is normal in restricted network environments.

ddgs not installed

pip3 install ddgs

> duckduckgo-search (older package name) is also supported as a fallback.

Slow fetch / timeout

Sources with slow RSS feeds are marked _disabled: true in sources.json. To disable an additional slow source:
{ "name": "...", "_disabled": true, ... }

Too many duplicate articles

Lower the similarity threshold:
SpotifyNewsProcessor(similarity_threshold=0.5)

Articles missing Chinese summary

The format_digest() function wraps untranslated titles in [brackets]. This is intentional โ€” the LLM caller should fill zh_summary before rendering. See Usage Examples โ†’ LLM-Enhanced Summaries above.


View on ClawHub
TERMINAL
clawhub install spotify-news-digest

๐Ÿงช Use this skill with your agent

Most visitors already have an agent. Pick your environment, install or copy the workflow, then run the smoke-test prompt above.

๐Ÿ” Can't find the right skill?

Search 60,000+ AI agent skills โ€” free, no login needed.

Search Skills โ†’