|
|
import subprocess |
|
|
import gradio as gr |
|
|
|
|
|
def get_download_link(url): |
|
|
""" |
|
|
Lấy link tải trực tiếp từ video YouTube. |
|
|
""" |
|
|
if not url.strip(): |
|
|
return "Vui lòng nhập URL video." |
|
|
|
|
|
try: |
|
|
|
|
|
cmd = f'yt-dlp -g {url}' |
|
|
result = subprocess.check_output(cmd, shell=True).decode('utf-8').strip() |
|
|
|
|
|
|
|
|
links = result.split("\n") |
|
|
formatted_links = "\n".join([f"- [Tải File {i+1}]({link})" for i, link in enumerate(links)]) |
|
|
|
|
|
return f"Các link tải trực tiếp:\n\n{formatted_links}" |
|
|
except subprocess.CalledProcessError as e: |
|
|
return f"Lỗi khi lấy link tải: {str(e)}" |
|
|
except Exception as e: |
|
|
return f"Đã xảy ra lỗi: {str(e)}" |
|
|
|
|
|
|
|
|
with gr.Blocks() as demo: |
|
|
gr.Markdown("## YouTube Downloader - Lấy Link Tải Trực Tiếp") |
|
|
url_input = gr.Textbox(label="Nhập URL video YouTube", placeholder="https://www.youtube.com/watch?v=...") |
|
|
download_button = gr.Button("Lấy Link Tải") |
|
|
output_display = gr.Markdown() |
|
|
|
|
|
|
|
|
download_button.click(fn=get_download_link, inputs=url_input, outputs=output_display) |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
demo.launch() |
|
|
|