Исправить страницу FastAPI Integration
+16
-16
@@ -16,20 +16,20 @@ from yt_shorts_downloader.exceptions import YtShortsDownloaderError
|
|||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
+@app.get('/download')
|
@app.get('/download')
|
||||||
+def download_short(url: str) -> Response:
|
def download_short(url: str) -> Response:
|
||||||
+ try:
|
try:
|
||||||
+ video = download(url, 'cookies.txt')
|
video = download(url, 'cookies.txt')
|
||||||
+ except YtShortsDownloaderError as exc:
|
except YtShortsDownloaderError as exc:
|
||||||
+ raise HTTPException(status_code=400, detail=str(exc)) from exc
|
raise HTTPException(status_code=400, detail=str(exc)) from exc
|
||||||
+
|
|
||||||
+ return Response(
|
return Response(
|
||||||
+ content=video.content,
|
content=video.content,
|
||||||
+ media_type=video.media_type,
|
media_type=video.media_type,
|
||||||
+ headers={
|
headers={
|
||||||
+ 'Content-Disposition': f'attachment; filename="{video.filename}"',
|
'Content-Disposition': f'attachment; filename="{video.filename}"',
|
||||||
+ },
|
},
|
||||||
+ )
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Что важно учитывать
|
## Что важно учитывать
|
||||||
@@ -43,5 +43,5 @@ app = FastAPI()
|
|||||||
|
|
||||||
- валидируйте входной URL на уровне API-контракта
|
- валидируйте входной URL на уровне API-контракта
|
||||||
- добавьте rate limiting на endpoint скачивания
|
- добавьте rate limiting на endpoint скачивания
|
||||||
- логируйте текст `str(exc)` для диагностики ошибок авторизации и yt-dlp
|
- логируйте `str(exc)` для диагностики ошибок авторизации и yt-dlp
|
||||||
- храните cookie-файл вне публичных директорий и вне docker image layer history, если это возможно
|
- храните cookie-файл вне публичных директорий и вне истории docker image layers, если это возможно
|
||||||
|
|||||||
Reference in New Issue
Block a user