Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_beefweb - modern web interface (Read 46372 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Re: foo_beefweb - modern web interface

Reply #100
When I open beefweb on my browser, it shows all my tracks in 1 HUGE playlist.

Is it possible to group then by genre => album artist or artist => album?

Thanks for the assistance.

Re: foo_beefweb - modern web interface

Reply #101


Playlist menu > Custom...
%genre% - %album artist% - %date% - %album% - %discnumber% - %tracknumber% -%title%
%genre% - $swapprefix(%album artist%) - $sub(3000,%date%) -%ALBUM% - %DISCNUMBER% - %TRACKNUMBER% - %TITLE%

Green: Playlist select
Click the Playlist icon to update the Playlist.
------
For convenient use:
foobar2000 menu > Edit > Sort by...
Add some sorting patterns.
Register "Sort by..." to Keyboard Shortcuts.
for example: ctrl + Shift + S
Check Global hotkey.
Choose from sorting patterns.
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, Bowers & Wilkins P7, FiiO FT5, 水月雨 (MOONDROP) 空鳴 - VOID, Nakamichi Elite FIVE ANC, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: foo_beefweb - modern web interface

Reply #102
I'm going to try some small modding ... right now trying to just build the component from the beefweb-0.8 source code ... it keeps failing with these 2 errors. Can someone give me pointer as to what is wrong?

Steps taken:
  • installed all the beefweb-0.8 pre-requisites
  • download beefweb-0.8 source code
  • unzip it into a folder
  • start Visual Studio 2022
  • start VS2022 command prompt
  • issue the build command: msbuild scripts\build.proj /p:Configuration=Release

It runs for quite a while, then throws the following error:

Code: [Select]
    :
  Performing install step for 'ext_zlib'
  -- ext_zlib install command succeeded.  See also S:/Visual_Studio_Projects/beefweb-
  0.8/cpp/build/Release/extlibs-root/src/ext_zlib-stamp/ext_zlib-install-*.log
  Creating import library for zlib1.dll
  -- ext_zlib make_import_lib command succeeded.  See also S:/Visual_Studio_Projects/
  beefweb-0.8/cpp/build/Release/extlibs-root/src/ext_zlib-stamp/ext_zlib-make_import_
  lib-*.log
  Completed 'ext_zlib'
FinalizeBuildStatus:
  Deleting file "Win32\Release\ext_zlib\ext_zlib.tlog\unsuccessfulbuild".
  Touching "Win32\Release\ext_zlib\ext_zlib.tlog\ext_zlib.lastbuildstate".
Done Building Project "S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\extlib
s\zlib\ext_zlib.vcxproj" (default targets).

Done Building Project "S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\extlib
s\zlib\ext_zlib.vcxproj.metaproj" (default targets).

Done Building Project "S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\ext_al
l.vcxproj.metaproj" (default targets) -- FAILED.

Done Building Project "S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\server
\core.vcxproj.metaproj" (default targets) -- FAILED.

Done Building Project "S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\beefwe
b.sln" (default targets) -- FAILED.

Done Building Project "S:\Visual_Studio_Projects\beefweb-0.8\scripts\build.proj" (def
ault targets) -- FAILED.


Build FAILED.

"S:\Visual_Studio_Projects\beefweb-0.8\scripts\build.proj" (default target) (1) ->
"S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\beefweb.sln" (default target
) (2) ->
"S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\server\core.vcxproj.metaproj
" (default target) (4) ->
"S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\ext_all.vcxproj.metaproj" (d
efault target) (5) ->
"S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\extlibs\foosdk\ext_foosdk.vc
xproj.metaproj" (default target) (8) ->
"S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\extlibs\foosdk\ext_foosdk.vc
xproj" (default target) (9) ->
(CustomBuild target) ->
  C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\M
icrosoft.CppCommon.targets(254,5): error MSB8066: Custom build for 'S:\Visual_Studio_
Projects\beefweb-0.8\cpp\build\Release\CMakeFiles\39a10b2bcdfa4bd8961faf62af603ee3\ex
t_foosdk-mkdir.rule;S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\CMakeFile
s\39a10b2bcdfa4bd8961faf62af603ee3\ext_foosdk-download.rule;S:\Visual_Studio_Projects
\beefweb-0.8\cpp\build\Release\CMakeFiles\39a10b2bcdfa4bd8961faf62af603ee3\ext_foosdk
-update.rule;S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\CMakeFiles\39a10
b2bcdfa4bd8961faf62af603ee3\ext_foosdk-patch.rule;S:\Visual_Studio_Projects\beefweb-0
.8\cpp\build\Release\CMakeFiles\39a10b2bcdfa4bd8961faf62af603ee3\ext_foosdk-configure
.rule;S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\CMakeFiles\39a10b2bcdfa
4bd8961faf62af603ee3\ext_foosdk-build.rule;S:\Visual_Studio_Projects\beefweb-0.8\cpp\
build\Release\CMakeFiles\39a10b2bcdfa4bd8961faf62af603ee3\ext_foosdk-install.rule;S:\
Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\CMakeFiles\a990d6aed58809e06235a
3d29d51faa2\ext_foosdk-complete.rule;S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\
Release\CMakeFiles\baf6f0184f7f380f32d1913cb5728162\ext_foosdk.rule;S:\Visual_Studio_
Projects\beefweb-0.8\cpp\extlibs\foosdk\CMakeLists.txt' exited with code 2. [S:\Visua
l_Studio_Projects\beefweb-0.8\cpp\build\Release\extlibs\foosdk\ext_foosdk.vcxproj]

"S:\Visual_Studio_Projects\beefweb-0.8\scripts\build.proj" (default target) (1) ->
"S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\beefweb.sln" (default target
) (2) ->
"S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\server\core.vcxproj.metaproj
" (default target) (4) ->
"S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\ext_all.vcxproj.metaproj" (d
efault target) (5) ->
"S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\extlibs\stringencoders\ext_s
tringencoders.vcxproj.metaproj" (default target) (12) ->
"S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\extlibs\stringencoders\ext_s
tringencoders.vcxproj" (default target) (13) ->
  C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\M
icrosoft.CppCommon.targets(254,5): error MSB8066: Custom build for 'S:\Visual_Studio_
Projects\beefweb-0.8\cpp\build\Release\CMakeFiles\7cdbc30f19678a66cf35621c4726fa3b\ex
t_stringencoders-mkdir.rule;S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\C
MakeFiles\7cdbc30f19678a66cf35621c4726fa3b\ext_stringencoders-download.rule;S:\Visual
_Studio_Projects\beefweb-0.8\cpp\build\Release\CMakeFiles\7cdbc30f19678a66cf35621c472
6fa3b\ext_stringencoders-update.rule;S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\
Release\CMakeFiles\7cdbc30f19678a66cf35621c4726fa3b\ext_stringencoders-patch.rule;S:\
Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\CMakeFiles\7cdbc30f19678a66cf356
21c4726fa3b\ext_stringencoders-configure.rule;S:\Visual_Studio_Projects\beefweb-0.8\c
pp\build\Release\CMakeFiles\7cdbc30f19678a66cf35621c4726fa3b\ext_stringencoders-build
.rule;S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\CMakeFiles\7cdbc30f1967
8a66cf35621c4726fa3b\ext_stringencoders-install.rule;S:\Visual_Studio_Projects\beefwe
b-0.8\cpp\build\Release\CMakeFiles\227a5dcaeb306afe9c0bd9c25d325c77\ext_stringencoder
s-complete.rule;S:\Visual_Studio_Projects\beefweb-0.8\cpp\build\Release\CMakeFiles\ab
7a76c9c1c7d9854f4edd6faa3c21ee\ext_stringencoders.rule;S:\Visual_Studio_Projects\beef
web-0.8\cpp\extlibs\stringencoders\CMakeLists.txt' exited with code 2. [S:\Visual_Stu
dio_Projects\beefweb-0.8\cpp\build\Release\extlibs\stringencoders\ext_stringencoders.
vcxproj]

    0 Warning(s)
    2 Error(s)

Time Elapsed 00:11:38.67


All help and guidance would be greatly appreciated...

Re: foo_beefweb - modern web interface

Reply #103
Nice component, it really gives foobar2000 a great option. Thanks, Hyperblast

There's just one thing I'd wish for to make it perfect for my needs, which would be group by artists and albums.

I got about 200.000 audio files in my library and it really takes a while to scroll all the way down to the bottom. In fb2k itself I group them by artist and then by album and that way I can manage that library. I haven't found a way yet to pass something like group by artists over to this remote interface. I might be stuck to listen to AC/DC and will never go down to ZZ Top that way, it just takes too long:-)

Is there a way to achieve this? Right now it's like mrjayviper says, it shows one huge playlist (or the playlist I chose to play from the foobar2000 application)

Re: foo_beefweb - modern web interface

Reply #104
Hi there,

Recently I had some problem retrieving the playlist item for one particular playlist (p194). All other playlist seem to load fine.
I have tried re-creating the playlist but the problem persist.
That playlist has <1200 items, I have other playlist with 1900 items are all good.

URL =
Code: [Select]
http://A.B.C.D:8880/api/playlists/p194/items/0%3A9999?columns=%25title%25,%25artist%25,%25album%20artist%25,%25album%25

The result is:



I know the problem is on the server side (foobar). I checked foobar console and I see this error whenever I try to access the above URL.



Any guidance?

.

Re: foo_beefweb - modern web interface

Reply #105
I do actually recognise that JSON exception code because I use the same C++ JSON library in one my components. Basically it's choking on some bad metadata in one your files so if you could find and isolate that one (or more) tracks, it could be fixed without developer intervention.

But the developer could update the component as well. The built in dump method for serialising data defaults to a "strict" error handling mode. This can be over ridden to allow the bad chars...

https://json.nlohmann.me/api/basic_json/dump/

If you have a github account, you might consider reporting it on the issues page here....

https://github.com/hyperblast/beefweb/issues

Re: foo_beefweb - modern web interface

Reply #106
I do actually recognise that JSON exception code because I use the same C++ JSON library in one my components. Basically it's choking on some bad metadata in one your files so if you could find and isolate that one (or more) tracks, it could be fixed without developer intervention.

Super big thanks for the pointer!

Absolutely right -- some issue with metadata.

I traced it to this track: ( see the "E:\" in the title ).


After I nuked the metadata in that track, the URL will load successfully the playlist items from foobar/foo_beefweb

Once again, thank you so much for your pointer!

.

Re: foo_beefweb - modern web interface

Reply #107
Is there a way to retrieve a cover art file path, rather than the raw image? In testing a little in both Firefox and Powershell using the `/artwork/<playlistID>/<index>` API method it appears to return the image binary.

Was looking for a way to get just the file path in a response.

(Also appreciate the clarity of the API documentation page)

Re: foo_beefweb - modern web interface

Reply #108
The file path is going to be useless to most. You typically don't have access to the local filesystem when you're connecting over http. What's the point?

If you really must, I guess you can take filenames from your album art preferences and prefix them with $directory_path(%path%).

Re: foo_beefweb - modern web interface

Reply #109
You typically don't have access to the local filesystem when you're connecting over http. What's the point?

From my original thread I was looking to get structured responses via CLI but since it was unclear where to go from there based on my experience I found foo_httpcontrol which was close to what I was after but seems it doesn't return cover art paths per item. So found that foo_beefweb could but it returns the image in binary form.

I'm only using a HTTP component for the responses, everything else is done locally and the interface isn't web-based.

If you really must, I guess you can take filenames from your album art preferences and prefix them with $directory_path(%path%).

This is a practical workaround, thanks.