Jump to content

AstroSkipper

Member
  • Posts

    4,633
  • Joined

  • Days Won

    564
  • Donations

    0.00 USD 
  • Country

    Germany

AstroSkipper last won the day on December 26 2025

AstroSkipper had the most liked content!

7 Followers

About AstroSkipper

Profile Information

  • OS
    XP Pro x86

Recent Profile Visitors

40,170 profile views

AstroSkipper's Achievements

11.2k

Reputation

  1. Since the ytdlp-silent-xp.exe file for starting yt-dlp hidden provided by FalloNero is still not working, I modified the code again and cleaned up all unnecessary lines of code. From now on, my PowerShell command "PowerShell.exe -windowstyle hidden cmd /c &" will be executed in the case the hidecon.exe file doesn't exist. If, however, the hidecon.exe file is present in the main folder of VLC, my reduced hidecon command "hidecon &" will be used instead to start yt-dlp hidden. Here is my new mod of the LUA script yt-dlp4vlc: -- YouTube Link Resolver for VLC with Separate Video and Audio URLs -- Place this script in VLC's lua/playlist directory local yt_dlp_path = 'yt-dlp.exe' local yt_dlp_silent_path = 'hidecon.exe' function sleep(s) local ntime = os.time() + s repeat until os.time() > ntime end 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 -- Extract "quality" query parameter if present local quality = youtube_url:match("[&?]quality=(%d+)[pP]?") youtube_url = youtube_url:gsub("[&?]quality=%d+[pP]?", ""):gsub("[&?]$", "") -- Remove trailing ? or & -- Get the preferred resolution preset by the user in VLC local prefres = vlc.var.inherit(nil, "preferred-resolution") if prefres < 0 then prefres = 2160 -- Best quality set to 2160p to overwrite VLC's native value of -1 end local allowed_qualities = { ["240"] = true, ["360"] = true, ["480"] = true, ["720"] = true, ["1080"] = true, ["2160"] = true } -- Default quality limited to the preferred resolution taken from VLC's settings local format_string = string.format("bestvideo[height<=%i]+bestaudio", prefres) if quality and allowed_qualities[quality] then format_string = string.format("bestvideo[height<=%i]+bestaudio", quality) vlc.msg.info("Using requested quality: " .. quality .. "p") else vlc.msg.info("No valid quality specified. Defaulting to best available.") end local cmd_hidden = 'hidecon &' -- Start cmd hidden and ... -- No better codec than h264 (an important switch for older hardware). This can of course be changed by the users according to their needs. local codec_limit = '-S "codec:h264"' local video_url = '' local audio_url = '' local yt_dlp_silent_exists = io.open(yt_dlp_silent_path, "r") ~= nil if not yt_dlp_silent_exists then vlc.msg.info(yt_dlp_silent_path .. " not found. Falling back to " .. yt_dlp_path) cmd_hidden = 'PowerShell.exe -windowstyle hidden cmd /c &' -- Start cmd hidden and ... local cmd = string.format( '%s "%s" %s -f \"%s\" -g "%s"', cmd_hidden, yt_dlp_path, codec_limit, format_string, youtube_url ) local handle = io.popen(cmd) video_url = handle:read("*l") audio_url = handle:read("*l") handle:close() else vlc.msg.info(yt_dlp_silent_path .. " found. Running program") local cmd = string.format( '%s "%s" %s -f \"%s\" -g "%s"', cmd_hidden, yt_dlp_path, codec_limit, format_string, youtube_url ) local handle = io.popen(cmd) video_url = handle:read("*l") audio_url = handle:read("*l") handle:close() end video_url = video_url and video_url:gsub("^%s+", ""):gsub("%s+$", "") or "" audio_url = audio_url and audio_url:gsub("^%s+", ""):gsub("%s+$", "") or "" vlc.msg.info("[YouTube Resolver] Original URL: " .. youtube_url) vlc.msg.info("[YouTube Resolver] Video URL: " .. video_url) if audio_url and audio_url ~= "" then return { { path = video_url, name = vlc.path .. " (Video)", options = { ":input-slave=" .. audio_url } } } else return { { path = video_url, name = vlc.path .. " (Video + Audio)" } } end end Cheers, AstroSkipper
  2. The LUA script yt-dlp4vlc reads the video quality preset by the user in VLC's settings only once while starting the player. If this setting is changed by the user at some point, the player has of course to be restarted to take the new setting into account.
  3. Although the LUA script yt-dlp4vlc,, originally created by FalloNero on GitHub, is still working, I modified it once again but already months ago. I didn't like his solution from April 2025 to have to add the video quality to the link every time it was transferred to VLC. It is easier to only enter the raw YouTube link as was the case in the past. In the LUA script, I therefore added code to be able to read and use the video quality which the user has preset in the video settings of VLC. Furthermore, I added a new variable containing a limit to use no better codec than h264 (an important switch for older hardware). I also changed the content of the format_string variable. Both can of course be changed by the users according to their needs. Finally, I reduced the hidecon command to start yt-dlp hidden. Here is my new mod of the LUA script yt-dlp4vlc: -- YouTube Link Resolver for VLC with Separate Video and Audio URLs -- Place this script in VLC's lua/playlist directory local yt_dlp_path = 'yt-dlp.exe'; local yt_dlp_silent_path = 'yt-dlp-silent.exe'; function sleep(s) local ntime = os.time() + s repeat until os.time() > ntime end 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 -- Extract "quality" query parameter if present local quality = youtube_url:match("[&?]quality=(%d+)[pP]?") youtube_url = youtube_url:gsub("[&?]quality=%d+[pP]?", ""):gsub("[&?]$", "") -- Remove trailing ? or & -- Get the preferred resolution preset by the user in VLC local prefres = vlc.var.inherit(nil, "preferred-resolution") if prefres < 0 then prefres = 2160 -- Best quality set to 2160p to overwrite VLC's native value of -1 end local allowed_qualities = { ["240"] = true, ["360"] = true, ["480"] = true, ["720"] = true, ["1080"] = true, ["2160"] = true } -- Default quality limited to the preferred resolution taken from VLC's settings local format_string = string.format("bestvideo[height<=%i]+bestaudio", prefres) if quality and allowed_qualities[quality] then format_string = string.format("bestvideo[height<=%i]+bestaudio", quality) vlc.msg.info("Using requested quality: " .. quality .. "p") else vlc.msg.info("No valid quality specified. Defaulting to best available.") end local cmd_hidden = yt_dlp_silent_path -- No better codec than h264 (an important switch for older hardware). This can of course be changed by the users according to their needs. local codec_limit = '-S "codec:h264"' local video_url = '' local audio_url = '' local yt_dlp_silent_exists = io.open(yt_dlp_silent_path, "r") ~= nil if not yt_dlp_silent_exists then vlc.msg.info(yt_dlp_silent_path .. " not found. Falling back to " .. yt_dlp_path) cmd_hidden = 'hidecon &' -- Start cmd hidden and ... local cmd = string.format( '%s "%s" %s -f \"%s\" -g "%s"', cmd_hidden, yt_dlp_path, codec_limit, format_string, youtube_url ) local handle = io.popen(cmd) video_url = handle:read("*l") audio_url = handle:read("*l") handle:close() else vlc.msg.info(yt_dlp_silent_path .. " found. Running program") local cmd = string.format( '%s -s "%s %s -f \"%s\" -g %s"', cmd_hidden, yt_dlp_path, codec_limit, format_string, youtube_url ) local process = io.popen("start /B " .. cmd) process:close() local output_file = "yt-dlp-output.txt" local file_exists = false local timeout = 0 local timeout_limit = 10 while not file_exists do local file_test = os.rename(output_file, output_file) if file_test then file_exists = true else vlc.msg.info("Waiting for output file...") sleep(1) timeout = timeout + 1 if timeout > timeout_limit then vlc.msg.warn("Timeout reached. The output file was not created.") break end end end vlc.msg.info("File found") local file = io.open(output_file, "r") video_url = file:read("*l") audio_url = file:read("*l") file:close() os.remove(output_file) end video_url = video_url and video_url:gsub("^%s+", ""):gsub("%s+$", "") or "" audio_url = audio_url and audio_url:gsub("^%s+", ""):gsub("%s+$", "") or "" vlc.msg.info("[YouTube Resolver] Original URL: " .. youtube_url) vlc.msg.info("[YouTube Resolver] Video URL: " .. video_url) if audio_url and audio_url ~= "" then return { { path = video_url, name = vlc.path .. " (Video)", options = { ":input-slave=" .. audio_url } } } else return { { path = video_url, name = vlc.path .. " (Video + Audio)" } } end end Don't forget to download hidecon (see the quoted post) and copy it to the main progranmme folder of VLC! From now on, the user's default settings for video quality will be respected again. Simply enter any YouTube link in VLC and the preset quality will be played. Cheers, AstroSkipper
  4. The old download link I used in my ytBATCH releases was https://github.com/nicolaasjan/yt-dlp/releases/latest/download/yt-dlp_x86_Windows-XP.zip which is no longer working. As you can see, at some point you changed the file name of the ZIP archive. For me. no problem. I have already rewritten the yt-dlp update module for the upcoming release of ytBATCH.
  5. @nicolaasjan changed the download link to his Windows XP release of yt-dlp. Moreover, it is no longer provided as a ZIP file but an executable one. Therefore, the yt-dlp update module inside my ytBATCH versions doesn't work anymore. I have already fixed that and am in testing phase. Additionally, I made further changes and implemented new features. When all is finished, I will release ytBATCH for Windows XP 1.7. Cheers, AstroSkipper
  6. Many programmes come with their own OpenSSL modules to establish secure connections. If such a programme is no longer updated, it is only a matter of time before secure connections can no longer be established. Local updating of the OpenSSL files by the user, if possible at all, can then help. A global installation of a current OpenSSL version will not help at all in such cases, as it is simply not used.
  7. Without a correctly installed and running HTTPSProxy, you will get this message each time under Windows XP when trying to activate Panda. Whether the proxy is working correctly or not, you can see in its console window. If you are not familiar with these proxies, then you should read my article ProxHTTPSProxy and HTTPSProxy in Windows XP for future use.
  8. For example, I updated the OpenSSL Shared Library inside the programme folder of MusicBrainz Picard to get their last XP-compatible version 1.4.2 working again.
  9. Programmes which need OpenSSL for establishing connections can be manually updated to a more recent OpenSSL version if the old one doesn't work properly anymore. I did that in the past to revive programmes which are no longer supported by the author. Installing it globally under Windows XP has never been necessary on my computer.
  10. Thanks for the info! Leaving Windows XP,.. that's too bad.
  11. Where do these releases come from? Who is the creator? You?
  12. Fileinfo is a lister plugin for the file manager Total Commander. If interested, you should install version 2.2.3 since the more recent version 2.2.4 doesn't install under Windows XP.
  13. My article about Panda Antivirus Free has been updated to include all recent information:
  14. Yep! It works. A working login form appears. But a login is only possible for school or business accounts. Private accounts are not supported. I tried to configure my old, private hotmail.com account but a message came up that private accounts were not supported.
  15. I'm not so sure about that. If you take a closer look at the scan results for the completely clean cmdow.exe file, you'll see that Kaspersky flags the file, but Panda Antivirus and Avast do not. Everyone can draw their own conclusions from this.
×
×
  • Create New...