

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
What worries me is in the last sentence. If they use GitHub which is owned by microsoft itself being a US company, couldn’t the government of the US order microsoft to take down the repositories? Wouldn’t an alternative git platform be better for this?