api-use-external
Any time an external api needs to be understood or queried
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
External API use
Includes how to query and process the current existing external APIs:
- IMDb Primary API.
- IMDb Fallback API - To be used when IMDb primary API times out or is otherwise unreachable.
Index
- API configuration:
- API provider framework:
- Docs and examples: documenation, endpoints, and request/response examples for both IMDb Primary API and IMDb Fallback API.
API configuration
- All API settings such as keys, base URLs, and timeouts come from
config.py. - API credentials and other secrets come from
.env.
API provider framework
API integration
- IMDb integration must remain active and fully operational.
- Core implementation is in
utils/imdb_core.pyusing RapidAPI-based providers. - Core function families include
imdb_details_fetch_core,imdb_search_core,imdb_rating_core,imdb_import_core,imdb_api_search_title, andimdb_api_get_details.
- Core implementation is in
- Provider configuration switches are defined in
config.py:-
MEDIA_ENABLE_IMDB = Truemust remain enabled.
-
Base API provider
-
utils/api_provider_core.pydefinesBaseApiProviderfor all external HTTP APIs. - Handles HTTP requests, authentication, token management, error handling, and response normalization.
- Stateless by design with no Flask context; safe to use in core modules.
- Includes retry strategy and standardized response format.
- Use this class instead of creating custom HTTP client code per API.
Provider descriptors
-
utils/api_provider_descriptors.pydefines configuration descriptors for each external API. - New providers should be added by defining a descriptor in this module, not by creating new ad-hoc client modules.
- Descriptors capture base URL, authentication strategy, header builders, and normalization callbacks.
- Supports bearer tokens, API keys, and static tokens.
- Includes
TokenCachefor automatic token refresh and caching where needed.
Core vs presentation for APIs
- Core API logic belongs in
utils/*_core.pymodules that use BaseApiProvider and descriptors. - Flask-aware presentation logic belongs in
routes/utils_*.pymodules that call core functions. - Keep API core code free of Flask imports and request context.
Docs and examples
-
IMDb primary API:
utils/imdb-01-docs.md(IMDb236 API) -
IMDb fallback API:
utils/imdb-02-docs.md(IMDb8 API)
Legacy unused but saved
Do not use or enable but do save:
- TVDB and TMDB are not currently enabled in the application.
- Supporting code and tests exist but must remain disabled unless explicitly authorized.
- Residual assets include templates under
templates/admin, JavaScript understatic/js, and utilities underutils/api_tvdbandutils/api_tmdb. - Runtime disabling is enforced in routes and config.
- Presence does not imply enablement; do not enable or delete them without approval.
- Provider configuration switches are defined in
config.py:-
MEDIA_ENABLE_TVDB = Falsemust stay disabled for now. -
MEDIA_ENABLE_TMDB = Falsemust stay disabled for now.
-
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-02-04
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!