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}")


Popular posts from this blog

SAP CPI : camle expression in sap cpi , cm, router, filter and groovy script. format

SAP CPI camel conditions and xpath conditions

oauth call to cpi integraiton suite from sap apim