mirror of
https://github.com/Evil0ctal/Douyin_TikTok_Download_API.git
synced 2025-04-12 03:37:05 +08:00
148 lines
4.8 KiB
Python
148 lines
4.8 KiB
Python
# ==============================================================================
|
||
# 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)
|