import argparse import yt_dlp import os def download_tiktok(url, download_audio_only=False): try: ydl_opts = { 'outtmpl': '%(uploader)s_%(id)s.%(ext)s', 'quiet': False, } if download_audio_only: ydl_opts['format'] = 'bestaudio/best' ydl_opts['postprocessors'] = [{ 'key': 'FFmpegExtractAudio', 'preferredcodec': 'mp3', }] with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download([url]) return True except Exception as e: print(f"Error: {str(e)}") return False if __name__ == "__main__": parser = argparse.ArgumentParser(description='Download TikTok videos or audio.') parser.add_argument('url', help='TikTok video URL') parser.add_argument('--audio', action='store_true', help='Download audio only') args = parser.parse_args() if not args.url.startswith('https://www.tiktok.com/'): print("Error: Please provide a valid TikTok URL") else: download_tiktok(args.url, args.audio)