Загрузка TikTok mp4 на стороне клиента в Django App
Я работаю над приложением и хочу загрузить видео TikTok, заданное URL-адресом на машине клиента. Я безрезультатно пробовал следующее. Я хотел бы сделать это как можно более легким способом и с помощью популярных и поддерживаемых библиотек, если это возможно. Проблемы, которые я получил в результате этих попыток, приведены ниже.
Использование https://github.com/davidteather/TikTok-Api
- Хотя это работает локально, это не работает, когда я развертываю приложение, так как у меня возникают проблемы с потоками. Я скопировал код из этой библиотеки и возился с потоками, но он все равно не работает полностью. Я бы хотел избежать этого варианта, так как он не очень удобен в обслуживании. .
Использование requests/wget
- При попытке использовать wget я получаю следующую проблему:
Error downloading video: 'ascii' codec can't decode byte 0xe2 in position 248: ordinal not in range(128) [11/Dec/2022 05:10:13] "GET /downloader/https://www.tiktok.com/@patrickzeinali/video/7143758925349784874?is_copy_url=1&is_from_webapp=v1&item_id=7143758925349784874&lang=en HTTP/1.1" 200 24
- При попытке использовать wget я получаю следующую проблему:
Вот как выглядят текущие файлы:
downloader/urls.py
from django.urls import re_path, path
from . import views
urlpatterns = [
path('<path:video_url>', views.download_video, name='download_video'),
]`
downloader/views.py
from django.http import HttpResponse
import ENV_VARS
import requests
import wget
def download_video(request, video_url):
print(f'Received request for video at URL: {video_url}')
# Use the `requests` library to fetch the TikTok video from the specified URL
try:
response = requests.get(video_url, headers=ENV_VARS.HEADERS)
except Exception as e:
print(f'Error fetching video from URL: {e}')
return HttpResponse('Error fetching video from URL!')
# Use the `wget` library to download the TikTok video to the client's device
print(f'Received response from video URL: {response.text}')
try:
wget.download(response.content)
except Exception as e:
print(f'Error downloading video: {e}')
return HttpResponse('Error downloading video!')
# Return a success message to the client
return HttpResponse('TikTok video downloaded successfully!')
Любая информация будет очень полезна. Спасибо!