Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "json"
- module Krystalekeko
- extend self
- def download_url(url : String)
- downloads_folder = "./downloads/youtube"
- save_path = "#{downloads_folder}/%(title)s.%(ext)s"
- stdout = IO::Memory.new
- process = Process.new("./binaries/yt-dlp", [url, "-o", save_path, "-q", "--print-json"], output: stdout)
- status = process.wait
- ytp_dlp_result = stdout.to_s
- json_result = JSON.parse(ytp_dlp_result)
- title = json_result["title"]
- extension = json_result["ext"]
- resized_save_path = "#{downloads_folder}/#{title}-720p.mp4"
- ffmpeg_stdout = IO::Memory.new
- Process.run("./binaries/ffmpeg-5.1.1-amd64-static/ffmpeg", [
- "-i",
- "#{downloads_folder}/#{title}.#{extension}",
- "-c:v",
- "libx265",
- "-vf",
- "scale=1280:-2",
- resized_save_path,
- ], output: ffmpeg_stdout)
- end
- end
- Krystalekeko.download_url("https://www.youtube.com/watch?v=dSZshiYNOT4")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement