ytdlqueue: add
This commit is contained in:
parent
523f959ad3
commit
7ff425cb2f
|
@ -0,0 +1,50 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
from queue import Queue
|
||||||
|
from threading import Thread
|
||||||
|
|
||||||
|
# Queue to hold the URLs
|
||||||
|
download_queue = Queue()
|
||||||
|
|
||||||
|
def download_video(url):
|
||||||
|
"""
|
||||||
|
Function to download a video using youtube-dl.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
print(f"Downloading {url}...")
|
||||||
|
subprocess.run(["yt-dlp", url], check=True)
|
||||||
|
print(f"Finished downloading {url}")
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
print(f"Failed to download {url}: {e}")
|
||||||
|
|
||||||
|
def worker():
|
||||||
|
"""
|
||||||
|
Worker function to process items in the queue.
|
||||||
|
"""
|
||||||
|
while True:
|
||||||
|
url = download_queue.get()
|
||||||
|
download_video(url)
|
||||||
|
download_queue.task_done()
|
||||||
|
|
||||||
|
def main():
|
||||||
|
# Start the worker thread
|
||||||
|
thread = Thread(target=worker)
|
||||||
|
thread.daemon = True
|
||||||
|
thread.start()
|
||||||
|
|
||||||
|
print("Enter URLs to download. Type 'exit' to quit.")
|
||||||
|
while True:
|
||||||
|
url = input("URL: ").strip()
|
||||||
|
if url.lower() == 'exit':
|
||||||
|
break
|
||||||
|
download_queue.put(url)
|
||||||
|
|
||||||
|
# Wait for all downloads to finish
|
||||||
|
download_queue.join()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
Loading…
Reference in New Issue