reel2meal / tiktok2summary.py
jacklangerman's picture
Upload folder using huggingface_hub
f534c35 verified
raw
history blame
1.69 kB
import pyktok as pyk
pyk.specify_browser("chrome") # Specify the browser to use for accessing TikTok
import os
import requests
from openai import OpenAI
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
import whisper
def download_audio(url):
metadata = pyk.get_tiktok_json(url)
if metadata is None:
print("Failed to retrieve TikTok metadata.")
return False
video_url = metadata['itemInfo']['itemStruct']['video']['downloadAddr']
audio_url = video_url.replace('video.mp4', 'audio.mp3')
response = requests.get(audio_url)
with open("tiktok_audio.mp3", "wb") as file:
file.write(response.content)
return True
def transcribe_audio():
model = whisper.load_model("base")
result = model.transcribe("tiktok_audio.mp3")
return result["text"]
def format_recipe(transcript):
prompt = f"Please format the following recipe transcript into a nicely formatted recipe:\n\n{transcript}"
response = client.completions.create(engine="text-davinci-003",
prompt=prompt,
max_tokens=500,
n=1,
stop=None,
temperature=0.7)
return response.choices[0].text.strip()
def main():
tiktok_url = "https://www.tiktok.com/@emmaaaaaaam_/video/7348493781961886981"
if download_audio(tiktok_url):
transcript = transcribe_audio()
formatted_recipe = format_recipe(transcript)
print("Formatted Recipe:")
print(formatted_recipe)
else:
print("Skipping recipe formatting due to audio download error.")
# Clean up temporary files
if os.path.exists("tiktok_audio.mp3"):
os.remove("tiktok_audio.mp3")
if __name__ == "__main__":
main()