Spaces:
Build error
Build error
| title: Instance 2 | |
| emoji: 🚀 | |
| colorFrom: yellow | |
| colorTo: red | |
| sdk: gradio | |
| sdk_version: 4.36.1 | |
| app_file: app.py | |
| pinned: false | |
| ## Scripts | |
| ``` | |
| app.py -> main script that run flask server | |
| indexer.py -> script to index the repo structure | |
| ``` | |
| ## Film and TV API | |
| This API provides endpoints for accessing and managing film and TV show data, including downloading, caching, and retrieving metadata. | |
| ## Table of Contents | |
| - [Base URL](#base-url) | |
| - [Endpoints](#endpoints) | |
| - [Film Endpoints](#film-endpoints) | |
| - [TV Show Endpoints](#tv-show-endpoints) | |
| - [Cache Endpoints](#cache-endpoints) | |
| - [Miscellaneous Endpoints](#miscellaneous-endpoints) | |
| - [Error Handling](#error-handling) | |
| - [Running the Server](#running-the-server) | |
| ## Base URL | |
| All endpoints are accessed through the base URL: | |
| ```markdown | |
| http://<server-address>:7860 | |
| ``` | |
| Replace `<server-address>` with your server's address. | |
| ## Endpoints | |
| ### Film Endpoints | |
| #### `GET /api/film` | |
| **Description:** Starts the download of a film if it's not already cached. | |
| **Query Parameters:** | |
| - `title` (string): The title of the film. | |
| **Responses:** | |
| - `200 OK`: Download started successfully. | |
| ```json | |
| { | |
| "status": "Download started", | |
| "film_id": "film_id_here" | |
| } | |
| ``` | |
| - `400 Bad Request`: Title parameter is required. | |
| ```json | |
| { | |
| "error": "Title parameter is required" | |
| } | |
| ``` | |
| - `404 Not Found`: Movie not found. | |
| #### `GET /api/film/store` | |
| **Description:** Retrieves the JSON data for the film store. | |
| **Responses:** | |
| - `200 OK`: Returns the film store JSON data. | |
| ```json | |
| { | |
| "film_title": "cache_path_here" | |
| } | |
| ``` | |
| - `404 Not Found`: Film store JSON not found. | |
| ### TV Show Endpoints | |
| #### `GET /api/tv` | |
| **Description:** Starts the download of a TV show episode if it's not already cached. | |
| **Query Parameters:** | |
| - `title` (string): The title of the TV show. | |
| - `season` (string): The season number. | |
| - `episode` (string): The episode number. | |
| **Responses:** | |
| - `200 OK`: Download started successfully. | |
| ```json | |
| { | |
| "status": "Download started", | |
| "episode_id": "episode_id_here" | |
| } | |
| ``` | |
| - `400 Bad Request`: Title, season, and episode parameters are required. | |
| ```json | |
| { | |
| "error": "Title, season, and episode parameters are required" | |
| } | |
| ``` | |
| - `404 Not Found`: TV show or episode not found. | |
| #### `GET /api/tv/store` | |
| **Description:** Retrieves the JSON data for the TV store. | |
| **Responses:** | |
| - `200 OK`: Returns the TV store JSON data. | |
| ```json | |
| { | |
| "show_title": { | |
| "season": { | |
| "episode": "cache_path_here" | |
| } | |
| } | |
| } | |
| ``` | |
| - `404 Not Found`: TV store JSON not found. | |
| ### Cache Endpoints | |
| #### `GET /api/cache/size` | |
| **Description:** Retrieves the total size of the cache. | |
| **Responses:** | |
| - `200 OK`: Returns the cache size in a human-readable format. | |
| ```json | |
| { | |
| "cache_size": "10.5 MB" | |
| } | |
| ``` | |
| #### `POST /api/cache/clear` | |
| **Description:** Clears the entire cache. | |
| **Responses:** | |
| - `200 OK`: Cache cleared successfully. | |
| ```json | |
| { | |
| "status": "Cache cleared" | |
| } | |
| ``` | |
| ### Metadata Endpoints | |
| #### `GET /api/filmid` | |
| **Description:** Retrieves the film ID by title. | |
| **Query Parameters:** | |
| - `title` (string): The title of the film. | |
| **Responses:** | |
| - `200 OK`: Returns the film ID. | |
| ```json | |
| { | |
| "film_id": "film_id_here" | |
| } | |
| ``` | |
| - `400 Bad Request`: Title parameter is required. | |
| ```json | |
| { | |
| "error": "Title parameter is required" | |
| } | |
| ``` | |
| #### `GET /api/episodeid` | |
| **Description:** Retrieves the episode ID by title, season, and episode. | |
| **Query Parameters:** | |
| - `title` (string): The title of the TV show. | |
| - `season` (string): The season number. | |
| - `episode` (string): The episode number. | |
| **Responses:** | |
| - `200 OK`: Returns the episode ID. | |
| ```json | |
| { | |
| "episode_id": "episode_id_here" | |
| } | |
| ``` | |
| - `400 Bad Request`: Title, season, and episode parameters are required. | |
| ```json | |
| { | |
| "error": "Title, season, and episode parameters are required" | |
| } | |
| ``` | |
| ### Miscellaneous Endpoints | |
| #### `GET /api/film/all` | |
| **Description:** Retrieves a list of all films. | |
| **Responses:** | |
| - `200 OK`: Returns a list of film paths. | |
| ```json | |
| [ | |
| "film_path_1", | |
| "film_path_2" | |
| ] | |
| ``` | |
| #### `GET /api/tv/all` | |
| **Description:** Retrieves a list of all TV shows. | |
| **Responses:** | |
| - `200 OK`: Returns a list of TV shows with their episodes. | |
| ```json | |
| { | |
| "show_title": [ | |
| { | |
| "season": "season_number", | |
| "episode": "episode_title" | |
| } | |
| ] | |
| } | |
| ``` | |
| ## Error Handling | |
| All endpoints return standard HTTP status codes: | |
| - `200 OK` for successful requests. | |
| - `400 Bad Request` for invalid requests. | |
| - `404 Not Found` for missing resources. | |
| Errors are returned in the following format: | |
| ```json | |
| { | |
| "error": "Error message here" | |
| } | |
| ``` | |
| ## Running the Server | |
| To run the server, ensure you have all required dependencies installed and use the following command: | |
| ```bash | |
| python app.py | |
| ``` | |
| The server will start on `http://0.0.0.0:7860` by default. | |
| --- |