RouteNote Blog Access Skill
Access blog posts from RouteNote Blog via the WordPress REST API. This skill specializes in extracting structured top lists (music charts, podcast rankings, audiobook lists) from Spotify Wrapped and similar articles.
Overview
RouteNote is a digital music distribution platform, and their blog features regular updates on music industry news, streaming platform trends, and popular music charts. The WordPress REST API provides clean, structured access to all blog content.
Functions
get_post
Fetch a single blog post by slug or ID.
Parameters:
slug(string, optional): Post URL slug (e.g., '2024-spotify-wrapped-top-lists')id(integer, optional): WordPress post ID
Returns:
post.id: Post IDpost.title: Post titlepost.slug: URL slugpost.date: Publication date (ISO format)post.link: Full URL to postpost.excerpt: Clean text excerptpost.content: Clean text contentpost.content_html: Raw HTML content
Example:
result = await execute({
"function": "get_post",
"slug": "2024-spotify-wrapped-top-lists"
})
list_posts
List recent blog posts with pagination.
Parameters:
per_page(integer, default 10, max 100): Number of posts to returnpage(integer, default 1): Page number for pagination
Returns:
posts: Array of post summariescount: Number of posts returnedpage: Current pageper_page: Posts per page
Example:
result = await execute({
"function": "list_posts",
"per_page": 20,
"page": 1
})
extract_lists
Extract structured ordered lists from a blog post. Ideal for Spotify Wrapped top charts, music rankings, and similar list-based content.
Parameters:
slug(string, optional): Post URL slugid(integer, optional): WordPress post ID
Returns:
post: Basic post info (id, title, slug, link)lists: Array of extracted lists, each with:heading: The heading preceding the listcount: Number of itemsitems: Array of items withtitleand optionalurl
list_count: Total number of lists foundtotal_items: Total items across all lists
Example:
result = await execute({
"function": "extract_lists",
"slug": "2024-spotify-wrapped-top-lists"
})
# Returns top artists, songs, albums, podcasts, audiobooks
search_posts
Search blog posts by keyword.
Parameters:
search(string, required): Search termper_page(integer, default 10, max 100): Number of results
Returns:
search_term: The search queryposts: Array of matching post summariescount: Number of results
Example:
result = await execute({
"function": "search_posts",
"search": "spotify wrapped",
"per_page": 15
})
Use Cases
1. Get Spotify Wrapped Annual Charts
Extract annual top charts for artists, songs, albums, podcasts, and audiobooks:
result = await execute({
"function": "extract_lists",
"slug": "2024-spotify-wrapped-top-lists"
})
for chart in result["lists"]:
print(f"\n{chart['heading']}")
for i, item in enumerate(chart["items"], 1):
print(f" {i}. {item['title']}")
2. Find Articles About Specific Topics
Search for articles about music platforms or trends:
result = await execute({
"function": "search_posts",
"search": "tiktok music"
})
3. Browse Recent Music Industry News
result = await execute({
"function": "list_posts",
"per_page": 20
})
Data Extracted from Top Lists
The extract_lists function is optimized for Spotify Wrapped articles and similar chart-based posts. It extracts:
- Most-Streamed Artists: Global top artists with Spotify links
- Most-Streamed Songs: Top tracks with artist info and Spotify links
- Most-Streamed Albums: Top albums with artist info and Spotify links
- Most Viral Songs: Viral tracks with Spotify links
- Top Podcasts: Most popular podcasts with Spotify links
- Top Audiobooks: Most listened audiobooks with Spotify links
Each list item includes:
title: The item name/ranking texturl: Spotify link (if available in the article)
Error Handling
All functions return structured error responses:
{
"error": "Human-readable error message",
"error_code": "ERROR_CODE"
}
Error codes:
INVALID_PARAMS: Missing or invalid parametersNOT_FOUND: Post not foundNETWORK_ERROR: Network/connection issuesUNKNOWN_FUNCTION: Unknown function nameUNEXPECTED_ERROR: Unexpected error occurred
Dependencies
aiohttp: Async HTTP client for API requestsbeautifulsoup4: HTML parsing for list extraction
Rate Limits
- 5 requests per second
- 100 requests per minute
Caching is enabled with a 1-hour TTL for optimal performance.