mirror of
https://github.com/FalloNero/yt-dlp4vlc.git
synced 2026-04-30 06:36:03 -04:00
first
first commit
This commit is contained in:
55
youtube.lua
Normal file
55
youtube.lua
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
-- YouTube Link Resolver for VLC with Separate Video and Audio URLs
|
||||||
|
-- Place this script in VLC's lua/playlist directory
|
||||||
|
|
||||||
|
function probe()
|
||||||
|
-- Check if the input is a YouTube link
|
||||||
|
return vlc.access == "http" or vlc.access == "https" and
|
||||||
|
(string.match(vlc.path, "youtube%.com") or string.match(vlc.path, "youtu%.be"))
|
||||||
|
end
|
||||||
|
|
||||||
|
function parse()
|
||||||
|
-- Construct the full YouTube URL
|
||||||
|
local youtube_url = vlc.access .. "://" .. vlc.path
|
||||||
|
|
||||||
|
-- Path to yt-dlp executable (modify as needed)
|
||||||
|
local yt_dlp_path = "C:\\YT-DLP\\yt-dlp.exe"
|
||||||
|
|
||||||
|
-- Construct the command to get the direct video and audio URLs
|
||||||
|
local cmd = string.format(
|
||||||
|
'%s -g "%s"',
|
||||||
|
yt_dlp_path,
|
||||||
|
youtube_url
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Execute yt-dlp to get the direct video and audio URLs
|
||||||
|
local handle = io.popen(cmd)
|
||||||
|
|
||||||
|
-- Read video URL (first line)
|
||||||
|
local video_url = handle:read("*l")
|
||||||
|
|
||||||
|
-- Read audio URL (second line)
|
||||||
|
local audio_url = handle:read("*l")
|
||||||
|
|
||||||
|
handle:close()
|
||||||
|
|
||||||
|
-- Trim any whitespace
|
||||||
|
video_url = video_url:gsub("^%s+", ""):gsub("%s+$", "")
|
||||||
|
audio_url = audio_url:gsub("^%s+", ""):gsub("%s+$", "")
|
||||||
|
|
||||||
|
-- Log the resolved URLs
|
||||||
|
vlc.msg.info("[YouTube Resolver] Original URL: " .. youtube_url)
|
||||||
|
vlc.msg.info("[YouTube Resolver] Video URL: " .. video_url)
|
||||||
|
vlc.msg.info("[YouTube Resolver] Audio URL: " .. audio_url)
|
||||||
|
|
||||||
|
-- Create a playlist item with both video and audio URLs
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
path = video_url,
|
||||||
|
name = vlc.path .. " (Video)",
|
||||||
|
options = {
|
||||||
|
-- Add audio URL as input option
|
||||||
|
":input-slave=" .. audio_url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user