First commit
This commit is contained in:
commit
ffbeba2c6c
0
Sounds/.gitkeep
Normal file
0
Sounds/.gitkeep
Normal file
47
main.py
Executable file
47
main.py
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import yt_dlp
|
||||||
|
import os
|
||||||
|
from pydub import AudioSegment
|
||||||
|
|
||||||
|
|
||||||
|
sounds_folder = 'Sounds'
|
||||||
|
|
||||||
|
def downloadAndCutVideo(url, filename, start = -1, end = -1):
|
||||||
|
if start == -1 and end == -1:
|
||||||
|
downloadVideo(url, filename)
|
||||||
|
return
|
||||||
|
|
||||||
|
tmpFilename = filename + "tmp"
|
||||||
|
downloadVideo(url, tmpFilename)
|
||||||
|
song = AudioSegment.from_mp3(computePath(tmpFilename))
|
||||||
|
|
||||||
|
if start != -1:
|
||||||
|
start = start * 1000
|
||||||
|
if end != -1:
|
||||||
|
end = end * 1000
|
||||||
|
cutted_song = song[start:end].export(computePath(filename), format="mp3")
|
||||||
|
os.remove(computePath(tmpFilename))
|
||||||
|
|
||||||
|
def downloadVideo(url, filename):
|
||||||
|
ydl_opts = {"format": "bestaudio", "outtmpl": sounds_folder + "/" + filename + ".%(ext)s"}
|
||||||
|
ydl_opts = {
|
||||||
|
'format': 'm4a/bestaudio/best',
|
||||||
|
# ℹ️ See help(yt_dlp.postprocessor) for a list of available Postprocessors and their arguments
|
||||||
|
'postprocessors': [{ # Extract audio using ffmpeg
|
||||||
|
'key': 'FFmpegExtractAudio',
|
||||||
|
'preferredcodec': 'mp3',
|
||||||
|
}],
|
||||||
|
"outtmpl": sounds_folder + "/" + filename + ".%(ext)s"
|
||||||
|
}
|
||||||
|
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
||||||
|
ydl.download([url])
|
||||||
|
|
||||||
|
def computePath(filename):
|
||||||
|
return sounds_folder + '/' + filename + ".mp3"
|
||||||
|
|
||||||
|
def refreshAvailableSounds():
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
downloadAndCutVideo('https://www.youtube.com/watch?v=wyNOM_HIv0U', "jesuislelaitier", 6, 10)
|
Loading…
Reference in New Issue
Block a user