[-] promitheas@programming.dev 3 points 6 months ago* (last edited 6 months ago)

Fancy meeting you here brother. Ready for our next battle?

-- VIM, in a snowy field, dressed in medieval knight armour, clutching a sword and a half broken shield, with the bodies of both Emacs' and VIM's comrades in arms strewn about

[-] promitheas@programming.dev 3 points 7 months ago* (last edited 7 months ago)

Yea, I was absolutely expecting the reply to be "yea ok well send it to our team" or "well consider it", but they actually listened and implemented it which is great.

[-] promitheas@programming.dev 3 points 10 months ago

Oh i didnt know about this. Where did you read this, id like to see if theres more info?

[-] promitheas@programming.dev 3 points 2 years ago

Ive been learning video editing with Shotcut recently. Its FOSS

[-] promitheas@programming.dev 3 points 2 years ago

Not sure what the MacOS one is, but i use flameshot and im happy with it

[-] promitheas@programming.dev 3 points 2 years ago* (last edited 2 years ago)

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

[-] promitheas@programming.dev 3 points 2 years ago

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

[-] promitheas@programming.dev 3 points 2 years ago

Yes exactly! Thank you

[-] promitheas@programming.dev 3 points 2 years ago

How can you look through/search through all current initiatives without needing someone to supply a link?

[-] promitheas@programming.dev 3 points 2 years ago

That worked, thanks!

Im not sure about the launcher with built-in mod support as I dont plan on using any other mods, so Im not sure if its worth it for what is essentially a single mod and a shader pack.

[-] promitheas@programming.dev 3 points 2 years ago

Eve online for me too. Ill be logging in in a few minutes 😃

As for the social aspect, even though im in one the big alliances, if i just dont feel like it on any particular night then theres no need to be social. I can do my own thing.

[-] promitheas@programming.dev 3 points 2 years ago

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

view more: ‹ prev next ›

promitheas

0 post score
0 comment score
joined 3 years ago