first commit

This commit is contained in:
Hannes committed 2026-09-13 21:16:18 +02:00
commit db4531dd24
3 files changed
+74

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
extracted/*.mp3
extracted/*.mkv
+72
View File
@@ -0,0 +1,72 @@
#!/usr/bin/env python3
"""
Extracts the first 1.5 minutes of a video into:
- a video-only file (no audio)
- an audio-only file (no video)
Output goes into an 'extracted' folder next to this script.
Requires: ffmpeg installed and on PATH.
"""
import subprocess
import os
import sys
import shutil
# ─── Hardcoded input (relative to this script's directory) ───
# INPUT_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "/path/to/movie_b.mp4")
INPUT_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "/path/to/movie_a.mkv")
DURATION = 90 # 1.5 minutes in seconds
OUT_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "extracted")
# ─── Check ffmpeg ───
if shutil.which("ffmpeg") is None:
sys.exit("ERROR: 'ffmpeg' not found on PATH. Install it and try again.")
# ─── Prepare output folder ───
os.makedirs(OUT_DIR, exist_ok=True)
# ─── Derive output filenames ───
stem = os.path.splitext(os.path.basename(INPUT_FILE))[0]
video_out = os.path.join(OUT_DIR, f"{stem}_video.mkv")
audio_out = os.path.join(OUT_DIR, f"{stem}_audio.mp3")
print(f"Input : {INPUT_FILE}")
print(f"Video → {video_out}")
print(f"Audio → {audio_out}")
print("-" * 50)
# ─── Extract video-only (first 90s, no audio) ───
cmd_video = [
"ffmpeg",
"-y", # overwrite output
"-i", INPUT_FILE,
"-t", str(DURATION),
"-an", # no audio
"-c:v", "copy", # copy video stream (no re-encode = fast + lossless)
video_out
]
print("[video] running ffmpeg…")
r = subprocess.run(cmd_video, capture_output=True, text=True)
if r.returncode != 0:
sys.exit(f"ffmpeg (video) failed:\n{r.stderr}")
print("[video] done ✔")
# ─── Extract audio-only (first 90s, no video) ───
cmd_audio = [
"ffmpeg",
"-y",
"-i", INPUT_FILE,
"-t", str(DURATION),
"-vn", # no video
"-c:a", "libmp3lame",
"-b:a", "192k", # 192 kbps
audio_out
]
print("[audio] running ffmpeg…")
r = subprocess.run(cmd_audio, capture_output=True, text=True)
if r.returncode != 0:
sys.exit(f"ffmpeg (audio) failed:\n{r.stderr}")
print("[audio] done ✔")
print("-" * 50)
print("All done. Files are in:", OUT_DIR)
View File
Whitespace-only changes.