youtube video, audio replace, alos copy right skip
-------------
working
replacing video audio with another audio
!pip install yt-dlp moviepy ffmpeg-python
import yt_dlp
from moviepy.editor import VideoFileClip, AudioFileClip
import os, glob
# -------- USER INPUTS --------
video_url = "https://www.youtube.com/watch?v=nMioEGPuEGA" # Video URL
video_start = "00:10"
video_end = "00:30"
audio_url = "https://youtu.be/cKyrYi0m4_w" # Audio URL
audio_start = "00:05"
audio_end = "00:25"
output_path = "/content/output.mp4"
# -----------------------------
def download_from_youtube(url, filename, audio_only=False):
"""Download video/audio from YouTube using yt-dlp"""
ydl_opts = {
'format': 'bestaudio/best' if audio_only else 'bestvideo+bestaudio/best',
'outtmpl': filename + ".%(ext)s", # keep extension
'quiet': False,
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
def time_to_seconds(t):
mm, ss = t.split(":")
return int(mm) * 60 + int(ss)
# Download video
download_from_youtube(video_url, "/content/video", audio_only=False)
# Find downloaded video file (any extension)
video_files = glob.glob("/content/video.*")
video_file = video_files[0]
# Download audio
download_from_youtube(audio_url, "/content/audio", audio_only=True)
# Find downloaded audio file (any extension)
audio_files = glob.glob("/content/audio.*")
audio_file = audio_files[0]
print("🎬 Video file:", video_file)
print("🔊 Audio file:", audio_file)
# Load video & trim
v_start = time_to_seconds(video_start)
v_end = time_to_seconds(video_end)
video_clip = VideoFileClip(video_file).subclip(v_start, v_end)
# Load audio & trim
a_start = time_to_seconds(audio_start)
a_end = time_to_seconds(audio_end)
audio_clip = AudioFileClip(audio_file).subclip(a_start, a_end)
# Adjust audio length
if audio_clip.duration > video_clip.duration:
audio_clip = audio_clip.subclip(0, video_clip.duration)
elif audio_clip.duration < video_clip.duration:
from moviepy.audio.fx.all import audio_loop
audio_clip = audio_loop(audio_clip, duration=video_clip.duration)
# Replace video audio
final_clip = video_clip.set_audio(audio_clip)
# Export final video
final_clip.write_videofile(output_path, codec="libx264", audio_codec="aac")
print(f"✅ Final video saved as {output_path}")
-----------
#Logic to skip youtube copyrights before writing mp4 file.
!pip install yt-dlp moviepy ffmpeg-python
import yt_dlp, glob, os
from moviepy.editor import VideoFileClip, AudioFileClip, TextClip, CompositeVideoClip
from moviepy.video.fx.all import speedx
from moviepy.audio.fx.all import audio_fadein, audio_fadeout, volumex
# -------- USER INPUTS --------
video_url = "https://www.youtube.com/watch?v=nMioEGPuEGA" # Video URL
video_start = "00:10"
video_end = "00:30"
audio_url = "https://youtu.be/cKyrYi0m4_w" # Audio URL
audio_start = "00:05"
audio_end = "00:25"
output_path = "/content/output.mp4"
# -----------------------------
def download_from_youtube(url, filename, audio_only=False):
"""Download video/audio from YouTube using yt-dlp"""
ydl_opts = {
'format': 'bestaudio/best' if audio_only else 'bestvideo+bestaudio/best',
'outtmpl': filename + ".%(ext)s", # keep original ext
'quiet': False,
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
def time_to_seconds(t):
mm, ss = t.split(":")
return int(mm) * 60 + int(ss)
# --- Step 1: Download files ---
download_from_youtube(video_url, "/content/video", audio_only=False)
video_file = glob.glob("/content/video.*")[0]
download_from_youtube(audio_url, "/content/audio", audio_only=True)
audio_file = glob.glob("/content/audio.*")[0]
print("🎬 Video file:", video_file)
print("🔊 Audio file:", audio_file)
# --- Step 2: Trim clips ---
v_start, v_end = time_to_seconds(video_start), time_to_seconds(video_end)
video_clip = VideoFileClip(video_file).subclip(v_start, v_end)
a_start, a_end = time_to_seconds(audio_start), time_to_seconds(audio_end)
audio_clip = AudioFileClip(audio_file).subclip(a_start, a_end)
# --- Step 3: Match durations ---
if audio_clip.duration > video_clip.duration:
audio_clip = audio_clip.subclip(0, video_clip.duration)
elif audio_clip.duration < video_clip.duration:
from moviepy.audio.fx.all import audio_loop
audio_clip = audio_loop(audio_clip, duration=video_clip.duration)
# --- Step 4: Apply "copyright-skip" transformations ---
# Slight speed change
video_clip = video_clip.fx(speedx, 1.01)
audio_clip = audio_clip.fx(speedx, 1.01)
# Small volume tweak + fades
audio_clip = audio_clip.fx(volumex, 0.98)
audio_clip = audio_fadein(audio_clip, 0.2)
audio_clip = audio_fadeout(audio_clip, 0.2)
# Invisible watermark
watermark = (TextClip(" ", fontsize=1, color='white')
.set_duration(video_clip.duration)
.set_position(("right","bottom"))
.set_opacity(0.01))
video_clip = CompositeVideoClip([video_clip, watermark])
# --- Step 5: Combine & Export ---
final_clip = video_clip.set_audio(audio_clip)
final_clip.write_videofile(output_path, codec="libx264", audio_codec="aac")
print(f"✅ Final video saved as {output_path}")