16 Commits
Author SHA1 Message Date
amd64fox 2a179d3cf0 version bump to 1.2.96
enable the redesigned context menu, canvas toggle, and video shelf previews
2026-08-08 14:03:04 +03:00
amd64fox c2cc808ef6 fix(block_slots): prepare semantic patching for Spotify 1.2.96
- resolve slot enums from mapper control flow instead of field offsets
- allow short or exact versions in the validation workflow
2026-08-08 00:09:42 +03:00
amd64fox 50bc5a6526 version bump to 1.2.95 2026-07-25 02:13:21 +03:00
amd64foxandthynome 3d1ddd6850 fix(binary): handle BinaryScanner failures
#878

Co-authored-by: thynome <125388433+thynomex@users.noreply.github.com>
2026-07-14 22:58:38 +03:00
amd64fox afb4c3fcd1 Add exclusions to Microsoft Defender
- Add exclusions to Microsoft Defender to prevent false positives
2026-07-11 20:50:11 +03:00
amd64foxandGitHub e22aba4ed4 version bump to 1.2.94 2026-07-11 16:37:12 +03:00
amd64fox 9eafb084c6 testing the new patch for slots in version 1.2.94
#876
2026-07-11 15:50:34 +03:00
amd64fox 550bc72cd1 feat(binary): enable native crossfade patch
- enable crossfade_enabled in Spotify.dll for 1.2.89+ free users #866

- share pe scanning helpers between dll signature and feature patches
2026-07-07 01:40:11 +03:00
amd64fox 981411947b corrected version 2026-07-02 00:46:46 +03:00
amd64fox 837d5d2471 version bump to 1.2.93 2026-07-02 00:45:00 +03:00
amd64fox ba77e8cc0b preparing for 1.2.93
- support ui-licenses.html
2026-06-27 02:20:15 +03:00
amd64fox fca14a99ba fix(installer): avoid duplicate pause prompts 2026-06-16 19:38:51 +03:00
amd64fox 0725e3465f enabled user top tracks 1.2.90+ 2026-06-15 22:41:42 +03:00
amd64fox 3284673df6 version bump to 1.2.92 2026-06-12 00:45:17 +03:00
amd64fox 95882aa5b3 version corrected 2026-05-30 22:39:47 +03:00
amd64fox b53956f71d fix(patches): skip version-mismatched patch targets
- check patch versions before opening target files
- add the home-v2 empty response check patch #862
2026-05-30 22:06:22 +03:00
40 changed files with 1861 additions and 200 deletions
+29 -14
View File
@@ -1,38 +1,53 @@
name: Check Spotx for the latest Spotify
run-name: Check SpotX for Spotify ${{ inputs.version || 'latest' }}
on:
workflow_dispatch:
inputs:
version:
description: Spotify version like 1.2.95 or 1.2.95.453, empty means latest
required: false
default: ''
type: string
jobs:
build:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Spotx
shell: powershell
env:
SPOTIFY_VERSION: ${{ inputs.version }}
run: |
$jsonUrl = "https://raw.githubusercontent.com/LoaderSpot/table/refs/heads/main/table/versions.json"
$resp = Invoke-RestMethod -Uri $jsonUrl
$spotifyVersion = ([string]$env:SPOTIFY_VERSION).Trim()
# Use fullversion because installer names include architecture suffixes
$latestEntry = $resp.PSObject.Properties | Select-Object -First 1
if (-not $latestEntry) {
throw "No Spotify versions found in $jsonUrl"
if ([string]::IsNullOrWhiteSpace($spotifyVersion)) {
$jsonUrl = "https://raw.githubusercontent.com/LoaderSpot/table/refs/heads/main/table/versions.json"
$resp = Invoke-RestMethod -Uri $jsonUrl
# Use fullversion for the installer name
$latestEntry = $resp.PSObject.Properties | Select-Object -First 1
if (-not $latestEntry) {
throw "No Spotify versions found in $jsonUrl"
}
$spotifyVersion = [string]$latestEntry.Value.fullversion
if ([string]::IsNullOrWhiteSpace($spotifyVersion) -or $spotifyVersion -notmatch '^\d+\.\d+\.\d+\.\d+\.g[0-9a-f]{8}$') {
throw "Invalid Spotify fullversion for $($latestEntry.Name)"
}
}
elseif ($spotifyVersion -notmatch '^\d+\.\d+\.\d+(?:\.\d+)?$') {
throw "Invalid Spotify version: $spotifyVersion"
}
$spotifyFullVersion = $latestEntry.Value.fullversion
if ([string]::IsNullOrWhiteSpace($spotifyFullVersion) -or $spotifyFullVersion -notmatch '^\d+\.\d+\.\d+\.\d+\.g[0-9a-f]{8}$') {
throw "Invalid Spotify fullversion for $($latestEntry.Name)"
}
Write-Host "Selected Spotify version: $spotifyVersion"
# Incoming parameters
$parameters = @{
Verbose = $true
new_theme = $true
version = $spotifyFullVersion
version = $spotifyVersion
confirm_spoti_recomended_over = $true
cache_limit = 1000
block_update_on = $true
+2 -2
View File
@@ -1,7 +1,7 @@
@echo off
:: Line for changing spotx parameters, each parameter should be separated by a space
set param=-new_theme
set param=-new_theme -no_pause
set url='https://raw.githubusercontent.com/SpotX-Official/SpotX/refs/heads/main/run.ps1'
set url2='https://spotx-official.github.io/SpotX/run.ps1'
@@ -11,4 +11,4 @@ set tls=[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]:
-Command %tls% $p='%param%'; """ & { $(try { iwr -useb %url% } catch { $p+= ' -m'; iwr -useb %url2% })} $p """" | iex
pause
exit /b
exit /b
+1 -1
View File
@@ -1,7 +1,7 @@
@echo off
:: Line for changing spotx parameters, each parameter should be separated by a space
set param=-v 1.2.13.661.ga588f749 -confirm_spoti_recomended_over -block_update_on
set param=-v 1.2.13.661.ga588f749 -confirm_spoti_recomended_over -block_update_on -no_pause
set url='https://raw.githubusercontent.com/SpotX-Official/SpotX/refs/heads/main/run.ps1'
set url2='https://spotx-official.github.io/SpotX/run.ps1'
+191 -24
View File
@@ -111,7 +111,7 @@
"native_description": "Enable music leavebehinds on eligible playlists for desktop",
"version": {
"fr": "1.2.10",
"to": ""
"to": "1.2.93"
}
},
"HptoLocationRefactor": {
@@ -390,7 +390,7 @@
"native_description": "Enable esperanto Migration for Leaderboard Ad Format",
"version": {
"fr": "1.2.32",
"to": ""
"to": "1.2.90"
}
},
"SponsoredPlaylistEsperantoMigration": {
@@ -417,7 +417,7 @@
"native_description": "Allow switching between the new Home Ads format and legacy HPTO format (as opposed to only showing the legacy HPTO format)",
"version": {
"fr": "1.2.34",
"to": ""
"to": "1.2.94"
}
},
"LimitedAdsLabelsOnPlaylistCards": {
@@ -449,7 +449,7 @@
"native_description": "Enables cross-origin iframe rendering for leaderboard ads via CDN template",
"version": {
"fr": "1.2.86",
"to": ""
"to": "1.2.90"
}
},
"LyricsUpsell": {
@@ -512,7 +512,7 @@
"native_description": "Enables the Employee Flag to send to Sentry",
"version": {
"fr": "1.2.44",
"to": ""
"to": "1.2.93"
}
},
"HomeImpressions": {
@@ -557,7 +557,7 @@
"native_description": "Enable Canvas for ads",
"version": {
"fr": "1.2.52",
"to": ""
"to": "1.2.92"
}
},
"ConnectedStateObserver": {
@@ -656,7 +656,7 @@
"native_description": "Enable Hpto announcements on Home",
"version": {
"fr": "1.2.65",
"to": ""
"to": "1.2.94"
}
},
"SponsoredPlaylistV2": {
@@ -778,7 +778,7 @@
"name": "bypassApplyUpdateCheck",
"version": {
"fr": "1.2.84",
"to": ""
"to": "1.2.93"
}
},
"ad_feedback_in_stream": {
@@ -789,6 +789,30 @@
"to": ""
}
},
"ad_feedback_home_free": {
"name": "enable_ad_feedback_home_free",
"description": "Kill switch for ad feedback on home ad format for free users",
"version": {
"fr": "1.2.93",
"to": ""
}
},
"ad_feedback_home_premium": {
"name": "enable_ad_feedback_home_premium",
"description": "Kill switch for ad feedback on home ad format for premium users",
"version": {
"fr": "1.2.93",
"to": ""
}
},
"ad_feedback_milestone_3": {
"name": "enable_ad_feedback_milestone_3",
"description": "Enable ad feedback milestone 3 feature",
"version": {
"fr": "1.2.93",
"to": ""
}
},
"HarmonyMediaPlaybackReporting": {
"name": "enableHarmonyMediaPlaybackReporting",
"description": "Enable the reporting of media playback events in Harmony",
@@ -804,6 +828,70 @@
"fr": "1.2.89",
"to": ""
}
},
"HptoLayoutRewrite": {
"name": "enableHptoLayoutRewrite",
"description": "Enable the new HomeAdCard flexbox layout rewrite",
"version": {
"fr": "1.2.92",
"to": ""
}
},
"EmbeddedAdHtmlDisplay": {
"name": "enableEmbeddedAdHtmlDisplay",
"description": "Enable HTML display ads in the embedded NPV",
"version": {
"fr": "1.2.94",
"to": ""
}
},
"ImageOptimizationSentrySpanMeasurement": {
"name": "enableImageOptimizationSentrySpanMeasurement",
"description": "Enable Sentry image resource span attributes for image optimization rollout measurement",
"version": {
"fr": "1.2.94",
"to": ""
}
},
"SentryReactRouterV6Routing": {
"name": "enableSentryReactRouterV6Routing",
"description": "Enable Sentry React Router v6 route instrumentation for Web Player SPA transactions",
"version": {
"fr": "1.2.94",
"to": ""
}
},
"SponsoredPlaylistHorizontalVideo": {
"name": "enableSponsoredPlaylistHorizontalVideo",
"description": "Enables horizontal video layout for sponsored playlist headers on desktop",
"version": {
"fr": "1.2.95",
"to": ""
}
},
"AdsSurfaceStateForAdOrchestration": {
"name": "useAdsSurfaceStateForAdOrchestration",
"description": "Use ads-owned NPV and cinema surface state for ad orchestration",
"version": {
"fr": "1.2.96",
"to": ""
}
},
"HptoHarmonyVideoPlayer": {
"name": "enableHptoHarmonyVideoPlayer",
"description": "Enable the Harmony-based video player for HPTO home video ads, replacing the Betamax player",
"version": {
"fr": "1.2.96",
"to": ""
}
},
"SidekickFeedbackBanner": {
"name": "enableSidekickFeedbackBanner",
"description": "Show the feedback banner in the Sidekick chat",
"version": {
"fr": "1.2.96",
"to": ""
}
}
},
"EnableExp": {
@@ -930,7 +1018,7 @@
"native_description": "Enable silence trimming in podcasts",
"version": {
"fr": "1.1.99",
"to": ""
"to": "1.2.93"
}
},
"PlaybackSpeedIncrements": {
@@ -1416,7 +1504,7 @@
"native_description": "Disable the Premium Only Modal",
"version": {
"fr": "1.2.39",
"to": ""
"to": "1.2.95"
}
},
"CenteredLayout": {
@@ -1632,7 +1720,7 @@
"native_description": "Enable reverse sort direction in Your Library",
"version": {
"fr": "1.2.60",
"to": ""
"to": "1.2.94"
}
},
"BackendSearchHistory": {
@@ -1866,12 +1954,19 @@
"to": ""
}
},
"MagpieAudiobookRows": {
"name": "enableMagpieAudiobookRows",
"version": {
"fr": "1.2.92",
"to": ""
}
},
"PlaylistExtenderBpmKey": {
"name": "enablePlaylistExtenderBpmKey",
"native_description": "Enable BPM and key columns in playlist recommendations",
"version": {
"fr": "1.2.82",
"to": ""
"to": "1.2.94"
}
},
"ShareActionBarButton": {
@@ -1895,7 +1990,7 @@
"native_description": "Show video preference settings for users to control video playback types",
"version": {
"fr": "1.2.86",
"to": ""
"to": "1.2.95"
}
},
"VideoQualityEnabled": {
@@ -1929,6 +2024,70 @@
"fr": "1.2.89",
"to": ""
}
},
"UserTopTracks": {
"name": "enableUserTopTracks",
"native_description": "Enable User Top Tracks shelf on the profile page and the dedicated /top/tracks route. Disable via rollout to kill the feature ahead of any List Platform migration",
"version": {
"fr": "1.2.90",
"to": ""
}
},
"crossfade_enabled": {
"name": "crossfade_enabled",
"native_description": "When true, shows the Crossfade toggle in Advanced Playback settings. When false, the setting is hidden.",
"version": {
"fr": "1.2.89",
"to": ""
}
},
"LeaderboardEmptySlotHandling": {
"name": "enableLeaderboardEmptySlotHandling",
"native_description": "Config for clearing the current leaderboard ad and hiding the leaderboard container when the ad slot returns an empty response",
"version": {
"fr": "1.2.94",
"to": ""
}
},
"EntityHeaderNew": {
"name": "enableEntityHeaderNew",
"native_description": "Enable the new entity header design",
"version": {
"fr": "1.2.95",
"to": ""
}
},
"ContextMenuLayoutV2": {
"name": "enableContextMenuLayoutV2",
"native_description": "Enables the Context Menu 2.0 layout",
"version": {
"fr": "1.2.96",
"to": ""
}
},
"CanvasContextMenuToggle": {
"name": "enableCanvasContextMenuToggle",
"native_description": "Enables the Canvas context menu toggle",
"version": {
"fr": "1.2.96",
"to": ""
}
},
"MusicVideos": {
"name": "enableMusicVideos",
"native_description": "Whether music videos are available for the current user. Override to true for supported products and markets",
"version": {
"fr": "1.2.96",
"to": ""
}
},
"VideoShelfPreviews": {
"name": "enableVideoShelfPreviews",
"native_description": "Enable video previews on hover in video shelf cards",
"version": {
"fr": "1.2.96",
"to": ""
}
}
},
"CustomExp": {
@@ -2029,7 +2188,7 @@
"value": "CONTROL",
"version": {
"fr": "1.2.31",
"to": ""
"to": "1.2.93"
}
},
"CanvasNpv": {
@@ -2156,7 +2315,7 @@
"block_slots": {
"version": {
"fr": "1.1.59",
"to": ""
"to": "1.2.93"
},
"add": "slot}(?=.{3,8}(override_url|queued_ads))",
"match": "slots(?=.{3,8}(override_url|queued_ads))",
@@ -2165,7 +2324,7 @@
"block_slots_2": {
"version": {
"fr": "1.2.55",
"to": ""
"to": "1.2.93"
},
"add": "slot}(?=.{25,35}state)",
"match": "slots(?=.{25,35}state)",
@@ -2174,7 +2333,7 @@
"block_slots_3": {
"version": {
"fr": "1.2.55",
"to": ""
"to": "1.2.93"
},
"add": "}(?=payload=)",
"match": "\\?(?=payload=)",
@@ -2464,14 +2623,14 @@
"to": ""
},
"match": [
"<li><a href=\"#[A-Za-z0-9]{5}\">zlib<\/a><\/li>\n(.|\n)*<\/p><!-- END CONTAINER DEPS LICENSES -->(<\/div>)",
"\t",
" ",
"(?m)(^\\s*\r?\n)",
"\r?\n(?!\\(1|\\d)"
"(?s)<li><a href=\"#[A-Za-z0-9]{5}\">zlib<\/a><\/li>.*?<\/p><!-- END CONTAINER DEPS LICENSES -->(<\/div>)|(<p>Third-party licenses[^<]*Desktop UI code:<\/p>\\s*<ul\\b[^>]*>(?:\\s*<li><a href=\"[^\"]+\">.*?<\/a><\/li>){1,8}).*?(<\/ul>).*\\z|(<p>Third-party licenses[^<]*Desktop UI code:<\/p>)\\s*\\z",
"\t|\\z",
" |\\z",
"(?m)(^\\s*\r?\n)|\\z",
"\r?\n(?!\\(1|\\d)|\\z"
],
"replace": [
"$2",
"$1$2$3$4",
"",
"",
"",
@@ -2583,6 +2742,14 @@
},
"match": "(typeName\\])",
"replace": "$1 || []"
},
"fixHomeV2EmptyResponseCheck": {
"version": {
"fr": "1.1.92",
"to": "1.2.44"
},
"match": "(\"HomeResponsePayload\"[\\s\\S]{0,500}?)0\\s*===\\s*([A-Za-z_$][\\w$]*)\\.sectionContainer\\.sections\\.totalCount\\s*\\|\\|\\s*0\\s*===\\s*\\2\\.sectionContainer\\.sections\\.items\\.length",
"replace": "$1!Array.isArray(null==$2||null==$2.sectionContainer||null==$2.sectionContainer.sections?void 0:$2.sectionContainer.sections.items)||0===$2.sectionContainer.sections.items.length"
}
},
"VariousJs": {
@@ -2750,4 +2917,4 @@
"replace": "$1(\"browsePage\"===$4.name?\"d8346883162a16a62a5b69e73e70c66a68c27b14265091cd9e1517f48334bbb3\":$3($4.body))"
}
}
}
}
+1535 -155
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,7 +1,7 @@
@echo off
:: Line for changing spotx parameters, each parameter should be separated by a space
set param=-confirm_uninstall_ms_spoti -confirm_spoti_recomended_over -podcasts_off -block_update_on -start_spoti -new_theme -adsections_off -lyrics_stat spotify
set param=-confirm_uninstall_ms_spoti -confirm_spoti_recomended_over -podcasts_off -block_update_on -start_spoti -new_theme -adsections_off -lyrics_stat spotify -no_pause
set url='https://raw.githubusercontent.com/SpotX-Official/SpotX/refs/heads/main/run.ps1'
set url2='https://spotx-official.github.io/SpotX/run.ps1'
@@ -11,4 +11,4 @@ set tls=[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]:
-Command %tls% $p='%param%'; """ & { $(try { iwr -useb %url% } catch { $p+= ' -m'; iwr -useb %url2% })} $p """" | iex
pause
exit /b
exit /b
+2 -2
View File
@@ -1,7 +1,7 @@
@echo off
:: Line for changing spotx parameters, each parameter should be separated by a space
set param=-premium -new_theme
set param=-premium -new_theme -no_pause
set url='https://raw.githubusercontent.com/SpotX-Official/SpotX/refs/heads/main/run.ps1'
set url2='https://spotx-official.github.io/SpotX/run.ps1'
@@ -11,4 +11,4 @@ set tls=[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]:
-Command %tls% $p='%param%'; """ & { $(try { iwr -useb %url% } catch { $p+= ' -m'; iwr -useb %url2% })} $p """" | iex
pause
exit /b
exit /b
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔════════════════════════════════════════╗
║ Сардэчна запрашаем у SpotX для Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═══════════════════════════════════╗
║ উইন্ডোজ স্পটএক্স এ আপনাকে স্বাগতম ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═════════════════════════════╗
║ Vítejte v SpotX pro Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════════╗
║ Willkommen bei SpotX für Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔════════════════════════════════════╗
║ Καλώς ήρθατε στο SpotX για Windows ║
+3
View File
@@ -36,6 +36,9 @@
Error = "Error"
FileLocBroken = "Location of Spotify files is broken, uninstall Spotify client and run the script again"
Spicetify = "Spicetify detected, it must be installed after SpotX, open recommended actions in FAQ ? [Y/N]"
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
NoRestore = "SpotX has already been installed, xpui.bak not found. `nPlease uninstall Spotify client and run Install.bat again"
InstallComplete = "installation completed"
HostInfo = "Unwanted URLs found in hosts file"
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═════════════════════════════════════════════╗
║ Le damos la bienvenida a SpotX para Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════╗
║ Welcome to SpotX for Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═══════════════════════════════╗
║ Tervetuloa SpotX:n Windowsiin ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═══════════════════════════════════════════════╗
║ Maligayang pagdating sa SpotX para sa Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════════╗
║ Bienvenue sur SpotX pour Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔════════════════════════════════════╗
║ SpotX for Windows में आपका स्वागत है ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔════════════════════════════════════════════╗
║ Üdvözöllek a SpotX Windowsos telepítőjében ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═══════════════════════════════════════╗
║ Selamat datang di SpotX untuk Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═══════════════════════════════╗
║ Benvenuti a SpotX per Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═══════════════════════════╗
║ SpotX Windows用にようこそ ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════╗
║ Welcome to SpotX for Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════╗
║ Welcome to SpotX for Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════╗
║ Welcome to SpotX for Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔════════════════════════════╗
║ Witamy w SpotX dla Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═════════════════════════════════╗
║ Bem-vindo ao SpotX para Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔════════════════════════════════════════╗
║ Bine ați venit la SpotX pentru Windows ║
+3
View File
@@ -36,6 +36,9 @@
Error = "Ошибка"
FileLocBroken = "Расположение файлов Spotify нарушено, удалите клиент Spotify и снова запустите скрипт"
Spicetify = "Обнаружен Spicetify, он должен быть установлен после SpotX, открыть рекомендуемые действия в FAQ ? [Y/N]"
DefenderPrompt = "Добавить исключения в Microsoft Defender для предотвращения ложных срабатываний? [Y/N]"
DefenderAdded = "Исключения добавлены в Microsoft Defender"
DefenderFailed = "Исключения не добавлены в Microsoft Defender"
NoRestore = "SpotX уже был установлен, но файл для восстановления xpui.bak не найден. `nУдалите клиент Spotify и снова запустите Install.bat"
InstallComplete = "Установка завершена"
HostInfo = "В файле hosts найдены нежелательные Url-адреса"
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════╗
║ Welcome to SpotX for Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════╗
║ Welcome to SpotX for Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════╗
║ Welcome to SpotX for Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════════╗
║ Välkommen till SpotX för Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔════════════════════════════════╗
║ Windows SpotXக்கு வரவேற்கிறோம் ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════════╗
║ Windows için SpotX'e Hoşgeldiniz ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔══════════════════════════════════════╗
║ Ласкаво просимо до SpotX для Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═════════════════════════════════════╗
║ Chào mừng đến với SpotX cho Windows ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔═════════════════════════════╗
║ 歡迎使用 SpotX Windows 版 ║
+3
View File
@@ -1,4 +1,7 @@
[PSCustomObject]@{
DefenderPrompt = "Add exclusions to Microsoft Defender to prevent false positives? [Y/N]"
DefenderAdded = "Exclusions added to Microsoft Defender"
DefenderFailed = "Microsoft Defender exclusions were not added"
Welcome = "
╔════════════════════════════════╗
║ 欢迎使用 SpotX 的 Windows 版本 ║