I made the icy-nord and icy-nord-darker themes.
@promitheas:matrix.org
Check out stremio
Oh, Im sorry. If I’m honest I completely forgot. Here it is:
You will need ffmpeg installed, and I did write it for Linux, so I’m not sure if there are differences for windows. Worst case you need to slightly modify it to work on windows.
#!/usr/bin/env python3
import requests
import os
import subprocess
from urllib.parse import urljoin
import sys
def download_video_chunks(base_url, output_file):
"""
Downloads video chunks from the given base URL and merges them into a single file.
:param base_url: The URL to the playlist or base directory containing the video chunks.
:param output_file: The name of the output video file (e.g., "output.mp4").
"""
try:
# Get the playlist file (e.g., .m3u8 or .ts index file)
print(f"Fetching playlist or video chunk URLs from: {base_url}", flush=True)
response = requests.get(base_url, timeout=10)
response.raise_for_status()
# Parse the playlist to get the chunk URLs
lines = response.text.splitlines()
chunk_urls = [urljoin(base_url, line) for line in lines if line and not line.startswith("#")]
if not chunk_urls:
print("No video chunks found in the provided URL.", flush=True)
return
# Create a directory for storing chunks
os.makedirs("video_chunks", exist_ok=True)
# Download each chunk
chunk_files = []
for idx, chunk_url in enumerate(chunk_urls):
chunk_file = os.path.join("video_chunks", f"chunk_{idx:04d}.ts")
print(f"Downloading {chunk_url}...", flush=True)
with requests.get(chunk_url, stream=True) as chunk_response:
chunk_response.raise_for_status()
with open(chunk_file, "wb") as f:
for chunk in chunk_response.iter_content(chunk_size=1024):
f.write(chunk)
chunk_files.append(chunk_file)
# Merge the chunks into a single file using ffmpeg
print("Merging chunks...", flush=True)
with open("file_list.txt", "w") as f:
for chunk_file in chunk_files:
f.write(f"file '{chunk_file}'\n")
subprocess.run(["ffmpeg", "-f", "concat", "-safe", "0", "-i", "file_list.txt", "-c", "copy", output_file], check=True)
print(f"Video saved as {output_file}", flush=True)
except requests.exceptions.RequestException as e:
print(f"An error occurred while downloading: {e}", flush=True)
except subprocess.CalledProcessError as e:
print(f"An error occurred while merging: {e}", flush=True)
finally:
# Clean up temporary files
if os.path.exists("file_list.txt"):
os.remove("file_list.txt")
for chunk_file in chunk_files:
os.remove(chunk_file)
# if os.path.exists("video_chunks"):
# os.rmdir("video_chunks")
if __name__ == "__main__":
base_url = input("Enter the URL of the video playlist or base directory: ")
output_file = input("Enter the output video file name (e.g., output.mp4): ")
print(f"Starting download process for playlist: {base_url}", flush=True)
download_video_chunks(base_url, output_file)
If you guys can recommend a fair and open pastebin alternative for me I will upload it there as well and edit this with the link
I think i wrote a short python script to do this on another site. Let me get home and see if i can help you out
I most certainly do not know how this specific thing is xD
I will say however, you took the saying “Improvise, Adapt, Overcome” to heart haha
You’ve done what now?
I scripted something similar for my bspwm setup. They are useful
I’m almost done with my CS degree, I started learning programming at age 10, low-level software development like drivers and embedded really interests me and that’s the direction I want to go in for a career, but I had to ask my friend who was studying with me to help me build my PC. Hardware just scares me. I’m worried ill bork something :3
Thanks