Spaces:
Paused
Paused
| # ============================================================================== | |
| # Copyright (C) 2021 Evil0ctal | |
| # | |
| # This file is part of the Douyin_TikTok_Download_API project. | |
| # | |
| # This project is licensed under the Apache License 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at: | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| # ============================================================================== | |
| # __ | |
| # /> フ | |
| # | _ _ l | |
| # /` ミ_xノ | |
| # / | Feed me Stars ⭐ ️ | |
| # / ヽ ノ | |
| # │ | | | | |
| # / ̄| | | | | |
| # | ( ̄ヽ__ヽ_)__) | |
| # \二つ | |
| # ============================================================================== | |
| # | |
| # Contributor Link: | |
| # - https://github.com/Evil0ctal | |
| # - https://github.com/Johnserf-Seed | |
| # | |
| # ============================================================================== | |
| # FastAPI APP | |
| import uvicorn | |
| from fastapi import FastAPI | |
| from app.api.router import router as api_router | |
| # PyWebIO APP | |
| from app.web.app import MainView | |
| from pywebio.platform.fastapi import asgi_app | |
| # OS | |
| import os | |
| # YAML | |
| import yaml | |
| # Load Config | |
| # 读取上级再上级目录的配置文件 | |
| config_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'config.yaml') | |
| with open(config_path, 'r', encoding='utf-8') as file: | |
| config = yaml.safe_load(file) | |
| Host_IP = config['API']['Host_IP'] | |
| Host_Port = config['API']['Host_Port'] | |
| # API Tags | |
| tags_metadata = [ | |
| { | |
| "name": "Hybrid-API", | |
| "description": "**(混合数据接口/Hybrid-API data endpoints)**", | |
| }, | |
| { | |
| "name": "Douyin-Web-API", | |
| "description": "**(抖音Web数据接口/Douyin-Web-API data endpoints)**", | |
| }, | |
| { | |
| "name": "TikTok-Web-API", | |
| "description": "**(TikTok-Web-API数据接口/TikTok-Web-API data endpoints)**", | |
| }, | |
| { | |
| "name": "TikTok-App-API", | |
| "description": "**(TikTok-App-API数据接口/TikTok-App-API data endpoints)**", | |
| }, | |
| { | |
| "name": "Bilibili-Web-API", | |
| "description": "**(Bilibili-Web-API数据接口/Bilibili-Web-API data endpoints)**", | |
| }, | |
| { | |
| "name": "iOS-Shortcut", | |
| "description": "**(iOS快捷指令数据接口/iOS-Shortcut data endpoints)**", | |
| }, | |
| { | |
| "name": "Download", | |
| "description": "**(下载数据接口/Download data endpoints)**", | |
| }, | |
| ] | |
| version = config['API']['Version'] | |
| update_time = config['API']['Update_Time'] | |
| environment = config['API']['Environment'] | |
| description = f""" | |
| ### [中文] | |
| #### 关于 | |
| - **Github**: [Douyin_TikTok_Download_API](https://github.com/Evil0ctal/Douyin_TikTok_Download_API) | |
| - **版本**: `{version}` | |
| - **更新时间**: `{update_time}` | |
| - **环境**: `{environment}` | |
| - **文档**: [API Documentation](https://douyin.wtf/docs) | |
| #### 备注 | |
| - 本项目仅供学习交流使用,不得用于违法用途,否则后果自负。 | |
| - 如果你不想自己部署,可以直接使用我们的在线API服务:[Douyin_TikTok_Download_API](https://douyin.wtf/docs) | |
| - 如果你需要更稳定以及更多功能的API服务,可以使用付费API服务:[TikHub API](https://api.tikhub.io/) | |
| ### [English] | |
| #### About | |
| - **Github**: [Douyin_TikTok_Download_API](https://github.com/Evil0ctal/Douyin_TikTok_Download_API) | |
| - **Version**: `{version}` | |
| - **Last Updated**: `{update_time}` | |
| - **Environment**: `{environment}` | |
| - **Documentation**: [API Documentation](https://douyin.wtf/docs) | |
| #### Note | |
| - This project is for learning and communication only, and shall not be used for illegal purposes, otherwise the consequences shall be borne by yourself. | |
| - If you do not want to deploy it yourself, you can directly use our online API service: [Douyin_TikTok_Download_API](https://douyin.wtf/docs) | |
| - If you need a more stable and feature-rich API service, you can use the paid API service: [TikHub API](https://api.tikhub.io) | |
| """ | |
| docs_url = config['API']['Docs_URL'] | |
| redoc_url = config['API']['Redoc_URL'] | |
| app = FastAPI( | |
| title="Douyin TikTok Download API", | |
| description=description, | |
| version=version, | |
| openapi_tags=tags_metadata, | |
| docs_url=docs_url, # 文档路径 | |
| redoc_url=redoc_url, # redoc文档路径 | |
| ) | |
| # API router | |
| app.include_router(api_router, prefix="/api") | |
| # PyWebIO APP | |
| if config['Web']['PyWebIO_Enable']: | |
| webapp = asgi_app(lambda: MainView().main_view()) | |
| app.mount("/", webapp) | |
| if __name__ == '__main__': | |
| uvicorn.run(app, host=Host_IP, port=Host_Port) | |