microsoft / winget-pkgs

The Microsoft community Windows Package Manager manifest repository
MIT License
8.75k stars 4.57k forks source link

[Package Issue]: yt-dlp.yt-dlp hard depends on Gyan.FFmpeg and no ability to use shared ffmeg #138665

Open ghost opened 9 months ago

ghost commented 9 months ago

Please confirm these before moving forward

Category of the issue

Other

Brief description of your issue

yt-dlp.yt-dlp hard depends on Gyan.FFmpeg, but there's also Gyan.FFmpeg.Shared, who want/need the libraries provided by ffmpeg, so having 2 packages that provide the same thing isn't really ideal.

Steps to reproduce

winget install yt-dlp

Actual behavior

it installs Gyan.FFmpeg, even if i already have Gyan.FFmpeg.Shared installed

Expected behavior

either the ability to choose which ffmpeg package to install or having a separate package called yt-dlp (shared)

Environment

Windows Package Manager v1.6.3482
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22631.2861
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.21.3482.0

Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User)    %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User)       %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root              C:\Program Files\WinGet\Packages
Portable Package Root (x86)        C:\Program Files (x86)\WinGet\Packages
Installer Downloads                %USERPROFILE%\Downloads

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Admin Setting                             State
--------------------------------------------------
LocalManifestFiles                        Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Disabled
LocalArchiveMalwareScanOverride           Disabled

Screenshots and Logs

No response

github-actions[bot] commented 9 months ago

Hi I'm an AI powered bot that finds similar issues based off the issue title.

Please view the issues below to see if they solve your problem, and if the issue describes your problem please consider closing this one and thumbs upping the other issue to help us prioritize it. Thank you!

Closed similar issues:

Note: You can give me feedback by thumbs upping or thumbs downing this comment.

mdanish-kh commented 9 months ago

I believe this depends on:

BiosPlus commented 9 months ago

I believe the other problem (and why I didn't include ffmpeg as a dependency in my yt-dlp PRs) is that ffmepg isn't required for the operation of yt-dl, it's needed when remuxing or converting audio/video tracks, in which case the program informs the user that ffmpeg is needed.

Would it not be best left to user choice on their installation method of this optional tool, especially given a user may already have ffmpeg available in path via an alternative means (choco for example places it in a directory within C:\programdata\choco\bin\ or something close to that effect iirc) and our dependency throws another instance of it onto a PC?

If it makes sense, I think we just keep ffmpeg out of the yt-dlp installer.yamls as a dependency.


Also, yt-dl also recommends having PhantomJS installed in some instances, yet we don't throw that in by default 😅

image

stephengillie commented 9 months ago

I believe the other problem (and why I didn't include ffmpeg as a dependency in my yt-dlp PRs) is that ffmepg isn't required for the operation of yt-dl, it's needed when remuxing or converting audio/video tracks, in which case the program informs the user that ffmpeg is needed.

If some form of FFmpeg isn't present, then I believe yt-dlp throws an error.

Would it not be best left to user choice on their installation method of this optional tool, especially given a user may already have ffmpeg available in path via an alternative means (choco for example places it in a directory within C:\programdata\choco\bin\ or something close to that effect iirc) and our dependency throws another instance of it onto a PC?

This is the goal behind the Issue that mdanish-kh linked.

If it makes sense, I think we just keep ffmpeg out of the yt-dlp installer.yamls as a dependency.

The error I mentioned above might block pipeline validation approval, or result in a poor user experience for users who don't have FFmpeg installed and don't know about it - they install a new application, get an error, and think poorly of our package manager system for allowing errant packages.

Also, yt-dl also recommends having PhantomJS installed in some instances, yet we don't throw that in by default 😅

Maybe we should. It's not in the repo yet, but appears to be a portable type of package.

3xploiton3 commented 4 months ago

looping installation image

SheepCommander commented 2 months ago

installing Gyan.FFmpeg.Shared doesn't even properly add ffmpeg to my PATH in my case

Gyan.FFmpeg fixes this tho