Skip to content

yt-downloader: Add version 0.2.1 - #18342

Closed
akaletekoffilevis wants to merge 1 commit into
ScoopInstaller:masterfrom
akaletekoffilevis:master
Closed

yt-downloader: Add version 0.2.1#18342
akaletekoffilevis wants to merge 1 commit into
ScoopInstaller:masterfrom
akaletekoffilevis:master

Conversation

@akaletekoffilevis

Copy link
Copy Markdown
  • Use conventional PR title: <manifest-name[@version]|chore>: <general summary of the pull request>
  • I have read the Contributing Guide

@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds a Scoop bucket manifest for YT Downloader version 0.2.1. The manifest includes package metadata, 64-bit and 32-bit installer URLs and hashes, quiet msiexec installation commands, GitHub-based version checking, and an autoupdate URL template.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Suggested labels: package-request-needed

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description is mostly empty template text and omits the required change summary and issue reference. Add a short PR summary, link the related issue with Closes/Relates #XXXX, and keep the checklist items filled in.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title is concise, conventional, and accurately reflects adding yt-downloader version 0.2.1.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot added the package-request-needed Create a package request issue before raising PR. Check the criteria for a package to be accepted. label Jul 19, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (1)
bucket/yt-downloader.json (1)

1-28: 📐 Maintainability & Code Quality | 🔵 Trivial

Run the required manifest checks before submission.

scoop config debug true
scoop config gh_token <your-github-token>

.\bin\checkver.ps1 -App yt-downloader -f
.\bin\formatjson.ps1 -App yt-downloader

scoop install bucket/yt-downloader.json -a 64bit
scoop install bucket/yt-downloader.json -a 32bit

Also verify install, update, and uninstall behavior for both architectures.

https://github.com/ScoopInstaller/.github/blob/main/.github/CONTRIBUTING.md
https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bucket/yt-downloader.json` around lines 1 - 28, Run the required manifest
validation and formatting commands for yt-downloader, then install the manifest
for both 64bit and 32bit architectures and verify install, update, and uninstall
behavior for each. Resolve any checkver, formatting, or installation issues
before submission.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@bucket/yt-downloader.json`:
- Around line 10-18: Add an uninstaller configuration to the manifest’s
installer definitions for both 64-bit and 32-bit packages, invoking msiexec with
the corresponding MSI product code or package identifier to remove the
application and registry entries. Keep the existing installer scripts unchanged
and ensure each architecture’s uninstaller targets its matching MSI.
- Around line 11-18: Update the package’s autoupdate configuration to use
architecture-specific URLs for 64bit and 32bit, substituting $version in both
the release path and MSI filename while preserving the x64/x86 variants. In both
architecture installer scripts, replace the hardcoded 0.2.1 MSI filename with
the package-manager-provided $fname variable.
- Around line 11-18: Update the 32bit installer script in the “installer”
configuration to invoke Start-Process with -PassThru, retain -Wait, and capture
the returned process before checking its ExitCode. Throw when the MSI exit code
is non-zero so installation failures propagate instead of being reported as
successful.
- Around line 3-5: Add the required package-request issue link to the manifest
metadata before merging, using the package-request URL specified by the
reviewer. Update the visible metadata near the description, homepage, and
license fields without changing the existing values.

---

Nitpick comments:
In `@bucket/yt-downloader.json`:
- Around line 1-28: Run the required manifest validation and formatting commands
for yt-downloader, then install the manifest for both 64bit and 32bit
architectures and verify install, update, and uninstall behavior for each.
Resolve any checkver, formatting, or installation issues before submission.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: b4beb005-921d-417d-a0ac-600730f51795

📥 Commits

Reviewing files that changed from the base of the PR and between 25155d0 and 9ba48c7.

📒 Files selected for processing (1)
  • bucket/yt-downloader.json

Comment thread bucket/yt-downloader.json
Comment on lines +3 to +5
"description": "YT Downloader - Téléchargement YouTube",
"homepage": "https://github.com/akaletekoffilevis/youtube-downloader",
"license": "MIT",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Show the manifest with line numbers
if [ -f bucket/yt-downloader.json ]; then
  cat -n bucket/yt-downloader.json
else
  echo "bucket/yt-downloader.json not found"
fi

echo
echo "=== Repo files near manifest ==="
git ls-files 'bucket/*yt-downloader*' 'deprecated/*yt-downloader*' || true

echo
echo "=== Search for package-request links or issue references in the manifest ==="
rg -n '"description"|"homepage"|"license"|package-request|github.com/.*/issues/[0-9]+' bucket/yt-downloader.json || true

Repository: ScoopInstaller/Extras

Length of output: 1926


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect whether the upstream project has a stable release / interface clues from repository metadata files
rg -n 'yt-downloader|youtube-downloader|English|release|pre-release|alpha|stars' -S . --glob '!**/.git/**' || true

Repository: ScoopInstaller/Extras

Length of output: 50378


🏁 Script executed:

#!/bin/bash
set -euo pipefail
cat -n bucket/yt-downloader.json | sed -n '1,200p'

Repository: ScoopInstaller/Extras

Length of output: 1627


🌐 Web query:

site:github.com/akaletekoffilevis/youtube-downloader GitHub repository stars release English documentation

💡 Result:

I couldn’t verify a GitHub repo at akaletekoffilevis/youtube-downloader from the search results. The exact repository search returned no results, so I can’t reliably report its stars, releases, or English documentation. (gist.github.com)

If you want, I can help find the closest matching repo and compare its stars/releases/docs.

Citations:


Add a package-request issue link before merging. No package-request issue is linked here. New Scoop packages must include a request issue and meet the package-request criteria; use https://github.com/ScoopInstaller/Extras/issues/new?labels=package-request&template=package-request.yml&title=%5BRequest%5D%3A+ and see the contribution guide/wiki: https://github.com/ScoopInstaller/.github/blob/main/.github/CONTRIBUTING.md, https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bucket/yt-downloader.json` around lines 3 - 5, Add the required
package-request issue link to the manifest metadata before merging, using the
package-request URL specified by the reviewer. Update the visible metadata near
the description, homepage, and license fields without changing the existing
values.

Source: Path instructions

Comment thread bucket/yt-downloader.json
Comment on lines +10 to +18
"installer": {
"script": "Start-Process msiexec -ArgumentList '/i', \"$dir\\YouTube.Downloader_0.2.1_x64_en-US.msi\", '/qn' -Wait"
}
},
"32bit": {
"url": "https://github.com/akaletekoffilevis/youtube-downloader/releases/download/v0.2.1/YouTube.Downloader_0.2.1_x86_en-US.msi",
"hash": "7643cc71414f03b338c9a6b3e5a0840a3e9907891390a3b19d52f8a7c64bfe80",
"installer": {
"script": "Start-Process msiexec -ArgumentList '/i', \"$dir\\YouTube.Downloader_0.2.1_x86_en-US.msi\", '/qn' -Wait"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

git ls-files bucket/yt-downloader.json
echo "----"
ast-grep outline bucket/yt-downloader.json
echo "----"
cat -n bucket/yt-downloader.json | sed -n '1,220p'

Repository: ScoopInstaller/Extras

Length of output: 1703


Add an MSI uninstaller in bucket/yt-downloader.json:10-18. scoop uninstall won’t remove the installed MSI app or its registry entries unless this manifest defines uninstaller (for example, an msiexec /x call using the product code). Scoop supports this field in app manifests. https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bucket/yt-downloader.json` around lines 10 - 18, Add an uninstaller
configuration to the manifest’s installer definitions for both 64-bit and 32-bit
packages, invoking msiexec with the corresponding MSI product code or package
identifier to remove the application and registry entries. Keep the existing
installer scripts unchanged and ensure each architecture’s uninstaller targets
its matching MSI.

Comment thread bucket/yt-downloader.json
Comment on lines +11 to +18
"script": "Start-Process msiexec -ArgumentList '/i', \"$dir\\YouTube.Downloader_0.2.1_x64_en-US.msi\", '/qn' -Wait"
}
},
"32bit": {
"url": "https://github.com/akaletekoffilevis/youtube-downloader/releases/download/v0.2.1/YouTube.Downloader_0.2.1_x86_en-US.msi",
"hash": "7643cc71414f03b338c9a6b3e5a0840a3e9907891390a3b19d52f8a7c64bfe80",
"installer": {
"script": "Start-Process msiexec -ArgumentList '/i', \"$dir\\YouTube.Downloader_0.2.1_x86_en-US.msi\", '/qn' -Wait"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail
wc -l bucket/yt-downloader.json
cat -n bucket/yt-downloader.json | sed -n '1,120p'

Repository: ScoopInstaller/Extras

Length of output: 1656


🌐 Web query:

Scoop manifest autoupdate architecture-specific url $fname installer script MSI

💡 Result:

In Scoop, managing architecture-specific URLs and installers—including MSI files—within the autoupdate system is handled by nesting configurations under the autoupdate property [1]. Architecture-Specific Autoupdate Configuration To support multiple architectures (e.g., 64bit, 32bit, arm64) during an autoupdate, you define an architecture property within the autoupdate object in your manifest [1]. This allows the autoupdate system to substitute version variables separately for each architecture [2][1]. Example structure: "autoupdate": { "architecture": { "64bit": { "url": "https://example.org/app-v$version-x64.msi" }, "32bit": { "url": "https://example.org/app-v$version-x86.msi" } } } Installer Scripts and MSI Handling The msi property in Scoop manifests is deprecated; the recommended approach is to treat.msi files like other archives (e.g.,.zip) by letting Scoop extract them, or by using a custom installer script if full installation is required [3][4]. If you must use an installer script for an MSI or executable, use the installer.script property [3]. You can define this per architecture within your manifest [3][1]. Variables available in installer scripts include: - $fname: The filename of the last downloaded file [3]. - $dir: The installation directory [3]. - $architecture: The current architecture (e.g., 64bit, 32bit) [3]. - $version: The application version [5]. Example of an architecture-specific installer script: "architecture": { "64bit": { "installer": { "script": [ "Start-Process "$dir\$fname" -ArgumentList '/quiet', '/norestart' -Wait" ] } } } When using autoupdate, ensure your checkver property is configured to detect the latest version, which triggers the substitution of $version and other variables throughout your manifest, including within the architecture-specific URLs and installer paths [1][6].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail
rg -n '"autoupdate"|"\$fname"|architecture"' bucket -g '*.json' | sed -n '1,240p'

Repository: ScoopInstaller/Extras

Length of output: 11828


Make autoupdate architecture-aware and remove versioned MSI names

autoupdate.url only targets the x64 MSI, so 32-bit updates will download the wrong file. The installer scripts also hardcode 0.2.1, so they’ll break on the next release unless they use $fname.

Suggested shape
"autoupdate": {
  "architecture": {
    "64bit": {
      "url": "https://github.com/akaletekoffilevis/youtube-downloader/releases/download/v$version/YouTube.Downloader_$version_x64_en-US.msi"
    },
    "32bit": {
      "url": "https://github.com/akaletekoffilevis/youtube-downloader/releases/download/v$version/YouTube.Downloader_$version_x86_en-US.msi"
    }
  }
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bucket/yt-downloader.json` around lines 11 - 18, Update the package’s
autoupdate configuration to use architecture-specific URLs for 64bit and 32bit,
substituting $version in both the release path and MSI filename while preserving
the x64/x86 variants. In both architecture installer scripts, replace the
hardcoded 0.2.1 MSI filename with the package-manager-provided $fname variable.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the manifest and find similar installer scripts in the repo.
git ls-files bucket/yt-downloader.json
echo '---'
cat -n bucket/yt-downloader.json
echo '--- similar installer scripts ---'
rg -n 'Start-Process msiexec|installer":\s*\{' bucket -g '*.json' -A 3 -B 2

Repository: ScoopInstaller/Extras

Length of output: 50378


🌐 Web query:

PowerShell Start-Process -Wait does not throw on non-zero exit code PassThru ExitCode documentation

💡 Result:

By design, the Start-Process cmdlet in PowerShell does not throw an exception or generate an error record when a started process terminates with a non-zero exit code [1][2][3]. It treats the completion of the process execution as a successful operation, regardless of the exit code returned by the process itself [1]. To handle non-zero exit codes when using Start-Process, you must manually inspect the process status [1][4]. When using the -PassThru parameter, Start-Process returns a System.Diagnostics.Process object [4][5]. You can check this object's ExitCode property after ensuring the process has finished (typically by using the -Wait parameter or calling the WaitForExit method) [5][6][7]. Example of manual checking: $process = Start-Process -FilePath "your_executable.exe" -PassThru -Wait if ($process.ExitCode -ne 0) { Write-Error "Process failed with exit code: $($process.ExitCode)" } For native commands invoked directly in PowerShell (rather than through Start-Process), you can enable automatic error handling for non-zero exit codes by setting the preference variable $PSNativeCommandUseErrorActionPreference to $true (available in PowerShell 7.4 and later) [3][8][9]. When enabled, a non-zero exit code emits a NativeCommandExitException, which respects the $ErrorActionPreference setting and can be caught using try/catch blocks [3][8]. Note that this specific preference variable does not apply to processes started via the Start-Process cmdlet itself [3][9].

Citations:


Propagate MSI exit codes in the installer script. Start-Process -Wait will not raise on a non-zero msiexec exit code, so a failed install can still be reported as successful. Use -PassThru and throw when .ExitCode is non-zero.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bucket/yt-downloader.json` around lines 11 - 18, Update the 32bit installer
script in the “installer” configuration to invoke Start-Process with -PassThru,
retain -Wait, and capture the returned process before checking its ExitCode.
Throw when the MSI exit code is non-zero so installation failures propagate
instead of being reported as successful.

@aliesbelik aliesbelik added the not-meet-criteria This package doesn't fully meet the essential criteria to be accepted in Extras bucket. label Jul 19, 2026
@aliesbelik aliesbelik changed the title yt-downloader@0.2.1: Add manifest yt-downloader: Add version 0.2.1 Jul 19, 2026
@aliesbelik

Copy link
Copy Markdown
Collaborator

The project looks quite new and doesn't fit criteria for Extras bucket, at least in terms

Reasonably well-known and widely used (e.g. if it's a GitHub project, it should have at least 100 stars and/or 50 forks)

Guess you could try to contribute to any community bucket or create your own instead, or come back at a later time when the Extras bucket requirements will be met (it's more preferable to open package request first).

Closing this for now.

@aliesbelik aliesbelik closed this Jul 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

not-meet-criteria This package doesn't fully meet the essential criteria to be accepted in Extras bucket. package-request-needed Create a package request issue before raising PR. Check the criteria for a package to be accepted.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants