27 Commits

Author SHA1 Message Date
Relationship b804d2ce13 Add files via upload 2026-07-12 18:48:50 +01:00
Relationship b772223dc2 Update README.md 2026-07-12 15:05:05 +01:00
Relationship 3fe601c06e Add files via upload 2026-07-10 10:30:32 +01:00
Relationship ab59d1edf3 Add files via upload 2026-07-10 10:28:47 +01:00
Relationship 2c6a429188 Add files via upload 2026-07-06 06:49:50 +01:00
Relationship 5627be8907 Delete RelationshipsJukeBox.toc 2026-07-06 06:49:30 +01:00
Relationship 6f30434002 Delete GeneratePlaylist.ps1 2026-07-06 06:49:20 +01:00
Relationship a4f8a9d297 Delete GeneratePlaylist.bat 2026-07-06 06:49:13 +01:00
Relationship 89b57f2f65 Delete Core.lua 2026-07-06 06:49:07 +01:00
Relationship e1e5b3344a Update README.md 2026-07-05 10:10:07 +01:00
Relationship 32af9fe29b Update RelationshipsJukeBox.toc 2026-07-05 10:01:17 +01:00
Relationship 282517f2d4 Add files via upload 2026-07-05 10:00:43 +01:00
Relationship 2062be4c5b Delete RelationshipsJukeBox.toc 2026-07-05 10:00:10 +01:00
Relationship 74e91c6da1 Delete GeneratePlaylist.ps1 2026-07-05 10:00:06 +01:00
Relationship acc770233f Delete GeneratePlaylist.bat 2026-07-05 10:00:02 +01:00
Relationship 80cfdff8f6 Delete Core.lua 2026-07-05 09:59:58 +01:00
Relationship 634ebd62c4 Update README.md 2026-07-05 08:39:45 +01:00
Relationship 00e05690ec Delete AutoPlaylist.lua 2026-07-05 08:28:18 +01:00
Relationship 2031057559 Add files via upload 2026-07-05 08:26:06 +01:00
Relationship c3c4488cdc Delete Core.lua 2026-07-05 08:25:48 +01:00
Relationship a1e45d9ed5 Delete GeneratePlaylist.bat 2026-07-05 08:25:44 +01:00
Relationship 343f892029 Delete GeneratePlaylist.ps1 2026-07-05 08:25:40 +01:00
Relationship f0996e4fce Delete RelationshipsJukeBox.toc 2026-07-05 08:25:34 +01:00
Relationship 5cd1a221bb Update README.md 2026-07-05 07:25:54 +01:00
Relationship e92321ada1 Update RelationshipsJukeBox.toc 2026-07-05 07:16:17 +01:00
Relationship 99d3881e88 Update RelationshipsJukeBox.toc 2026-07-05 07:13:48 +01:00
Relationship 504bdd7473 Update README.md 2026-07-05 07:02:13 +01:00
5 changed files with 3460 additions and 529 deletions
+2189 -190
View File
File diff suppressed because it is too large Load Diff
+6 -117
View File
@@ -1,122 +1,11 @@
@echo off
setlocal
echo ============================================================
echo Relationships Jukebox - Playlist Generator
echo ============================================================
echo.
REM -- Strip trailing backslash from %~dp0 to avoid "Illegal characters in path" --
set "ROOT=%~dp0"
if "%ROOT:~-1%"=="\" set "ROOT=%ROOT:~0,-1%"
REM -- If a local ffmpeg folder exists inside the addon, prepend it to PATH --
REM This ensures the PS1 script's Find-Ffmpeg can discover it even if
REM it isn't on the system PATH yet.
if exist "%ROOT%\ffmpeg\ffmpeg.exe" (
set "PATH=%ROOT%\ffmpeg;%PATH%"
)
REM -- Check for -UseWinRAR flag --
set "PS_ARGS=-NoProfile -ExecutionPolicy Bypass -File "%ROOT%\GeneratePlaylist.ps1" -RootPath "%ROOT%""
if "%1"=="-UseWinRAR" (
set "PS_ARGS=-NoProfile -ExecutionPolicy Bypass -File "%ROOT%\GeneratePlaylist.ps1" -RootPath "%ROOT%" -UseWinRAR"
)
if "%1"=="-usewinrar" (
set "PS_ARGS=-NoProfile -ExecutionPolicy Bypass -File "%ROOT%\GeneratePlaylist.ps1" -RootPath "%ROOT%" -UseWinRAR"
)
powershell %PS_ARGS%
set "ERR=%ERRORLEVEL%"
if not "%ERR%"=="0" (
echo.
echo GeneratePlaylist failed with exit code %ERR%.
echo.
echo Trying fallback download method...
echo.
REM -- Fallback: Use bitsadmin or certutil to download ffmpeg if needed --
REM -- This provides at least some progress output when PowerShell fails --
set "FFMPEG_DIR=%ROOT%\ffmpeg"
if not exist "%FFMPEG_DIR%\ffmpeg.exe" (
echo ffmpeg not found. Attempting fallback download...
echo.
set "DL_DIR=%ROOT%\ffmpeg_download"
if not exist "%DL_DIR%" mkdir "%DL_DIR%"
REM -- Try bitsadmin (available on most Windows systems) --
where bitsadmin >nul 2>nul
if %ERRORLEVEL%==0 (
echo Using bitsadmin to download ffmpeg...
echo This may take several minutes depending on your connection.
echo.
bitsadmin /transfer "ffmpeg_download" /priority normal "https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip" "%DL_DIR%\ffmpeg.zip"
if exist "%DL_DIR%\ffmpeg.zip" (
echo.
echo Download complete. Extracting ffmpeg.zip with PowerShell...
powershell -NoProfile -Command "Expand-Archive -LiteralPath '%DL_DIR%\ffmpeg.zip' -DestinationPath '%DL_DIR%\extracted' -Force; $bin = Get-ChildItem '%DL_DIR%\extracted' -Recurse -Directory -Filter 'bin' | Select-Object -First 1; if ($bin) { if (-not (Test-Path '%FFMPEG_DIR%')) { New-Item -ItemType Directory -Path '%FFMPEG_DIR%' -Force | Out-Null }; Copy-Item (Join-Path $bin.FullName 'ffmpeg.exe') '%FFMPEG_DIR%\' -Force -ErrorAction SilentlyContinue; Copy-Item (Join-Path $bin.FullName 'ffprobe.exe') '%FFMPEG_DIR%\' -Force -ErrorAction SilentlyContinue }; Remove-Item '%DL_DIR%\extracted' -Recurse -Force -ErrorAction SilentlyContinue; Remove-Item '%DL_DIR%\ffmpeg.zip' -Force -ErrorAction SilentlyContinue"
if exist "%FFMPEG_DIR%\ffmpeg.exe" (
echo ffmpeg installed successfully via fallback.
) else (
echo WARNING: Fallback extraction may not have completed successfully.
)
) else (
echo bitsadmin download failed.
)
) else (
echo bitsadmin not available on this system.
echo.
echo Please install ffmpeg manually:
echo 1. Download from https://www.gyan.dev/ffmpeg/builds/
echo 2. Extract ffmpeg.exe and ffprobe.exe
echo 3. Place them in: %FFMPEG_DIR%
)
)
echo.
echo Trying to generate playlist without PowerShell...
echo.
REM -- Minimal fallback: just scan Media folder and write AutoPlaylist.lua --
REM -- This works without ffmpeg but uses estimated durations --
if exist "%ROOT%\Media" (
echo Scanning Media folder for audio files...
set "OUTFILE=%ROOT%\AutoPlaylist.lua"
echo RelationshipsJukeboxAutoPlaylist = {} > "%OUTFILE%"
echo RelationshipsJukeboxAutoPlaylist.tracks = { >> "%OUTFILE%"
for /r "%ROOT%\Media" %%F in (*.mp3 *.wav *.ogg) do (
setlocal enabledelayedexpansion
REM Get the full path of the file
set "FULLFILE=%%F"
REM Strip the ROOT prefix to get a relative path like \Media\song.mp3
set "RELPATH=!FULLFILE:%ROOT%=!"
REM Build the WoW-relative path: Interface\AddOns\RelationshipsJukeBox\Media\song.mp3
REM RELPATH starts with \ (from the remaining path after stripping ROOT)
set "FULLPATH=Interface\AddOns\RelationshipsJukeBox!RELPATH!"
REM Double all backslashes for Lua string escaping (\\ in source = \ in Lua value)
set "FULLPATH=!FULLPATH:\=\\!"
set "BASENAME=%%~nF"
echo { path = "!FULLPATH!", name = "!BASENAME!", duration = 180 }, >> "%OUTFILE%"
endlocal
echo Found: %%~nF
)
echo } >> "%OUTFILE%"
echo.
echo Playlist generated (using estimated 180s durations).
echo Install ffmpeg for accurate durations and MP3 sanitization.
) else (
echo Media folder not found: %ROOT%\Media
)
echo.
echo Usage: GeneratePlaylist.bat [-UseWinRAR]
echo -UseWinRAR Prefer WinRAR over 7-Zip for archive extraction
pause
exit /b %ERR%
)
REM Pass any command-line arguments (e.g. -UseWinRAR) to the PS1 script
powershell -ExecutionPolicy Bypass -File "%~dp0GeneratePlaylist.ps1" %*
echo.
echo Playlist entries now include names and durations for Play All / Shuffle.
echo Autoplay and Shuffle work even without metadata - estimated durations are used.
echo.
echo Tip: Run with -UseWinRAR flag to use WinRAR for archive extraction:
echo GeneratePlaylist.bat -UseWinRAR
pause
+1184 -146
View File
File diff suppressed because it is too large Load Diff
+11 -9
View File
@@ -1,3 +1,8 @@
<img src="https://cdn.discordapp.com/attachments/1158418666883395656/1525865531914326178/I.png?ex=6a54f084&is=6a539f04&hm=bb45f6e1f19bd36e725d0b59ec45d9ba6c44a9d61317bbe337c11199dea2c5fd&"/>
<img src="https://cdn.discordapp.com/attachments/1158418666883395656/1525865506266026014/ezgif-1f660e370df27e35.gif?ex=6a54f07d&is=6a539efd&hm=855171ddda7550fcb92ee2130f9cf007b9e84562c06f350e81ee7097a7c25b96&"/>
# Relationships Jukebox
**Relationships Jukebox** is a lightweight World of Warcraft music addon that lets you play your own local audio files in-game through a full playlist window, a compact mini player, and simple slash commands.
@@ -16,9 +21,8 @@ The addon scans a local `Media` folder, builds a playlist automatically, and let
- **Right-click:** Toggle Full GUI
- Automatically imports tracks from `AutoPlaylist.lua`
- Stores track names and durations for smoother autoplay and shuffle playback
- Attempts to improve **WoW 1.12 MP3 compatibility** by sanitizing problematic MP3 files during playlist generation
- Works even without metadata by falling back to estimated durations
- Attempts to improve MP3, WAV, and OGG compatibility by sanitizing problematic files during playlist generation
- Works without metadata by falling back to estimated durations
## Installation
@@ -69,8 +73,8 @@ AutoPlaylist.lua
- creates or updates `AutoPlaylist.lua`
- captures track names
- tries to determine durations
- checks MP3 files for WoW 1.12 compatibility issues
- optionally uses `ffmpeg` / `ffprobe` for better metadata and MP3 sanitization
- checks MP3, WAV, and OGG files for WoW 1.12 compatibility issues
- optionally uses `ffmpeg` / `ffprobe` for better metadata and MP3, WAV, and OGG sanitization
After generating the playlist, use `/reload` so the addon can import the updated track list.
@@ -171,9 +175,9 @@ Important: if the audio file still exists in the `Media` folder and is still inc
- Make sure `AutoPlaylist.lua` was created
- Use `/reload`
### Some MP3s do not play
### Some MP3, WAV, and OGG files do not play
WoW 1.12 can be picky about MP3 encoding. Re-run the generator and let it sanitize files if `ffmpeg` is available.
WoW 1.12 can be picky about MP3, WAV, and OGG encoding. Re-run the generator and let it sanitize files if `ffmpeg` is available.
### Durations seem wrong
@@ -195,5 +199,3 @@ Install one of the following:
## Credits
Author: **Relationship**
If you package releases, consider including this README alongside the addon so users know to place tracks in `Media`, run the generator, and reload the UI.
+4 -1
View File
@@ -1,7 +1,10 @@
## Interface: 11200
## Title: Relationships Jukebox
## Notes: Simple in-game MP3/WAV player with GUI.
## Notes: Simple in-game MP3/WAV/OGG player with GUI.
## Author: Relationship
## Version: 1.5
## SavedVariables: RelationshipsJukeboxDB
## X-Website: https://github.com/Relationship-OctoWoW/RelationshipsJukeBox
## X-GitHub: https://github.com/Relationship-OctoWoW/RelationshipsJukeBox
AutoPlaylist.lua
Core.lua