Monthly Target: $400 Donations: $259
 64% 

Jukebox for Source - Streaming Music System v0.5.5.0 Beta


Post New Thread Reply   
 
Thread Tools Display Modes
Author
SirLamer
Senior Member
Join Date: Oct 2008
Plugin ID:
1188
Plugin Version:
0.5.5.0
Plugin Category:
Fun Stuff
Plugin Game:
Any
Plugin Dependencies:
    Approver:
    Plugin Description:
    A fully featured music streaming plugin, including a searchable in-game interface and a music library administrative software suite.
    Servers with this Plugin:
    36 
    Old 09-28-2009 , 00:22   Jukebox for Source - Streaming Music System v0.5.5.0 Beta
    Reply With Quote #1

    Jukebox for Source is a fully featured music streaming plug-in for SourceMod. It is designed to offer a complete solution for server admins who want to enrich their server's character and overall experience and places heavy value on social play. Jukebox uniquely offers a searchable and dynamic interface similar to those of many other music players, such as iTunes and WinAmp.

    Jukebox is compatible with all Source engine mods on both Linux and Windows. For admins, Jukebox also includes a web-based suite of tools for uploading and managing your music library.

    Features

    Jukebox Features
    • Intuitive, dynamically generated menu-based interface.
      • Browse tracks by genre, artist, album or title.
      • Look up and select from the newest or most popular tracks.
    • Command-line interface, including full search capability, for more familiar users.
    • Customizable playback behavior available to each client, with automatically saved and restored settings.
    • Easily listen to an entire genre, album or any search result using convenient playlist generation and playback.
    • Queue up additional tracks at any time.
    • Easy-to-read display of track info in synchronization with playlist tracks.
    • Admin-reserved ability to play music for everyone on the server.

    Administrative Features
    • Easily integrate MP3 tracks from any folder on your website.
      • Currently designed for separate FTP upload prior to track integration.
    • Supports batch processing of new tracks. Upload several albums at once!
    • Minimizes work in populating track metadata.
      • Automatic ID3 extraction.
      • Make batch changes to album, artist and genre info.
    • Browse, preview, edit and delete tracks using the provided library browser.
    • Optionally host MP3 files on a low-cost remote server.
      • Intended for rental packages which do not include enough bandwidth and storage spaces for Jukebox.
      • Remote file server is automatically managed via FTP.
    • Access is controlled and secure.
      • Create user accounts for people you wish to have uploading or administrative access.
      • Identify who is uploading which tracks.
      • Non-administrative users may edit and delete their own additions.
    • No risk of leeching.
      • Playback URLs expire due to encrypted timestamp.
      • Stored files have randomized file names, making direct browsing impractical.

    Requirements
    • Website Server
      • PHP 5 or later
      • MySQL 5 or later
    • Source Engine Game Server
      • SourceMod 1.3.8 or later
      • Access to same MySQL database as Website Server
      • Mod must include an HTML-enabled Message of the Day feature
    • Remote File Server (optional)
      • FTP server
    • User requirements

    ConVars
    • jb_admin_flags_playall (default: “jz”) – An admin flag string identifying the admin flags that grant Public Stream playback control permissions, or leave blank to grant access to all users.
    • jb_admin_flags_reserved (default: “jz”) – An admin flag string identifying the admin flags that grant Jukebox operation rights during the 'reserved' state.
    • jb_admin_flags_settings (default: “hz”) – An admin flag string identifying the admin flags that grant Jukebox Admin Menu access, or leave blank to grant access to all users with general Admin Menu access rights.
    • jb_advertisement (default: 0) – The number of seconds after first spawning to display the Jukebox advertisement, or set to 0 to not display the advertisement.
    • jb_announce_mode (default: 1) – Sets the in-chat playback announcement mode. 0 = no announce, 1 = announce first track of each selection list, 2 = announce every track for Public Stream and only first track for Private Streams, 3 = announce every track for Public and Private Streams.
    • jb_base_url (default: “”) – URL path to Jukebox's base folder.
    • jb_db_conn_name (default: “default”) – Named SQL connection to be used by Jukebox. Database must be defined within sourcemod/configs/database.cfg
    • jb_db_log_history (default: “jb_log_history”) – SQL table name for the Log History table.
    • jb_db_log_usernames (default: “jb_log_usernames”) – SQL table name for the Log Usernames table.
    • jb_db_options (default: “jb_options”) – SQL table name for the Options table.
    • jb_db_playlists (default: “jb_stream_tracks”) – SQL table name for the Playlists table.
    • jb_db_streams (default: “jb_streams”) – SQL table name for the Streams table.
    • jb_db_tracks (default: “jb_tracks”) – SQL table name for the Tracks table.
    • jb_enabled (default: 1) – Set to 0 to disable Jukebox, 1 to enable Jukebox for all users, 2 to reserve Jukebox operations for admins.
    • jb_leech_password (default: “”) – Anti-leech password used to timestamp produced URLs. Must match the leech password specified on the web server.
    • jb_log_use (default: 0) – Enables playback logging.
    • jb_monitor_jboff_use (default: 3) – The number of times the user must cancel a play-to-all song to be automatically reminded and invited to adjust personal playback settings. Set to 0 to disable.
    • jb_motd_restart (default: 0) – When enabled, users will be reconnected to their music stream after being interrupted by an HTML-based Message of the Day.
    • jb_playall_default (default: 1) – Default setting for if clients should comply with 'play all' command.
    • jb_playall_on_connect (default: 1) – When enabled, connecting new players will be merged into the latest active play-to-all stream.
    • jb_popularity_decay_interval (default: 86400) – The interval time between popularity decay events, in seconds.
    • jb_popularity_decay_rate (default: 5) – Percentage rate of decay of popularity scores per interval time.
    • jb_queue_default (default: 0) – Default setting for automatic music queuing.
    • jb_reserved (default: 0) – Reserves Jukebox operation for admins.
    • jb_volume_default (default: 80) – Default playback volume for new users.
    • jb_volume_loud (default: 20) – Volume boost for ‘loud’ playback.
    • jb_volume_min (default: 10) – The minimum permitted volume setting, as a percentage of maximum volume.
    • jb_volume_soft (default: -20) – Volume reduction for ‘soft’ playback.

    Commands
    • sm_jukebox – Invokes the Jukebox music system.
    • sm_jb – Shorthand alias for sm_jukebox.
    • sm_jboff – Stop music playback.
    • sm_jballoff – (Admin reserved) Stop music playback for all players.
    • sm_eavesdrop – Use: sm_eavesdrop <username>. Join the most recently started music stream, or a particular player’s stream, if named.
    • sm_volume – Use: sm_volume <value>. Stores a playback volume level from 1 to 100%.

    Version Info

    Current Version: 0.5.5.0
    • Completely replaced the music playback system with a new HTML5 and flash-based media player called jPlayer. This new media player will allow Jukebox to work as it did previously within TF2, Counter-Strike and any other Source Engine games and mods that make use of the newer WebKit browser which accompanied the Mac OS updates.
      • Jukebox now requires all users to have Adobe Flash for Other Browsers installed for music playback to work. This same version of Flash is required by all users for full functionality within the Steam store. More information may be found here: https://support.steampowered.com/kb_...8175-XFMJ-5769

    Version 0.5.4.2:
    • (include/login/constants.php, include/settings.php) Changed document include method to avoid path error observed on many servers.

    Version 0.5.4.1:
    • (include/login/constants.php, include/settings.php) It is no longer required to populate constants.php with settings. Settings.php has been updated with additional fields.
      • Existing installations are required to replace settings.php on your server with the new version in the upgrade package.
    • Fixed major error during track change process introduced in previous release.
    • Removed log error which reported lack of track info during Playback Menu start.
    • Changed new user Options entry sequence to deal with slow SQL query case.
    • (Database) Corrected absence in SQL installation script included in 0.5.4.0 so that the default “admin” account is not properly created.
      • Existing installations need not take any special action. This correction does not affect those who took the upgrade path to 0.5.4.0.
    • (General admin website) Completed edit of webscript to use full PHP open tag, so that the php.ini setting “short_open_tag” can be left at its default value of false.
    • Legacy SQL installation scripts are no longer distributed with Jukebox, to avoid confusion. Refer to the development thread for legacy versions.

    Version 0.5.4.0:
    • Jukebox is now developed and tested on SourceMod 1.3.1.
      • This and future releases should be run on a server running SourceMod 1.3.1 or later.
      • Technical support is not offered for servers which do not run on SourceMod 1.3.1 or later.
    • Made several SQL database changes.
      • Existing installations must run the included SQL database upgrade script. The upgrade to version 0.5.4.0 can be found within the “sql” folder in the website files.
      • Fixed SQL database error so that the “queue” column within “jb_streams” is created with a default value of 0.
      • Revised design of Playback Log to simplify the design of various search operations.
        • Log entries are stored in “jb_log_history”, each containing a “user_id”, “username_id” and “track_id”.
        • Each “user_id” refers to a user entry in the “jb_options” table, which includes the user’s Steam ID.
        • Each “username_id” refers to the Username entry in the “jb_log_usernames” table, which includes the user’s Username observed when he or she connected to the server.
        • Each “track_id” refers to a Track entry in the “jb_tracks” table.
        • In addition to the above, the “jb_log_history” table stores some event data. The “start” column denotes the time at which the listened to track began playing, not the time at which the user joined in listening. The “joined” column denotes the amount of time into playback of the track that the user started listening. The “finish” column denotes the amount of time into playback of the track the user ended listening. Entries with a “finish” value of 0 implies that the track is currently being listened to.
      • Removed “jb_log_users” table, replacing its function with the Steam ID data already within “jb_options”.
        • Removed cvar “jb_db_log_users”.
    • Restored custom named database feature previously removed in 0.5.3.1, this time corrected to properly connect using connection names other than “default”.
      • Restored cvar “jb_db_conn_name” (default = “default”). Named SQL connection to be used by Jukebox. Database must be defined within sourcemod/configs/database.cfg
      • Existing installations must add this cvar to jukebox.cfg and specify the named database connection to be used by Jukebox.
        • For most servers, the value should either be “default” or “jukebox”.
    • (upload.php) Fixed Jukebox incorrectly type casting the playtime duration from floating point to integer.
      • Previously uploaded MP3s have the playtime stored as a value rounded to the second. Server admins are strongly advised to run “jukebox_0540_playtime_fix.php” found within the “sql” folder. It must be moved to Jukebox’s root folder and run from there. While not technically required, Jukebox will benefit from a more accurate playtime measurement.
    • Server admins can now specify which admin flags grant access to the Public Stream playback, Reserved use and Admin Menu functions.
      • Added new cvar “jb_admin_flags_playall” (default = “jz”). An admin flag string identifying the admin flags that grant Public Stream playback control permissions, or leave blank to grant access to all users.
      • Added new cvar “jb_admin_flags_reserved” (default = “jz”). An admin flag string identifying the admin flags that grant Jukebox operation rights during the 'reserved' state.
      • Added new cvar “jb_admin_flags_settings (default = “hz”). An admin flag string identifying the admin flags that grant Jukebox Admin Menu access, or leave blank to grant access to all users with general Admin Menu access rights.
      • The admin flag “z” must explicitly be included in order to grant access rights to admins with this “root” admin flag.
      • Refer to the SourceMod Wiki for more information on admin flags: http://wiki.alliedmods.net/Adding_Admins_(SourceMod)
    • The in-chat playback announcement feature can now operate in any one of three different modes.
      • Mode 1 (default): Announce the first track of each Public and Private Stream.
      • Mode 2: Announce the first track of each Private Stream and every track from the Public Stream as they begin playing.
      • Mode 3: Announce every track from all Private and Public Streams.
      • Added new cvar “jb_announce mode” (default = 1). Sets the in-chat playback announcement mode. 0 = no announce, 1 = announce first track of each selection list, 2 = announce every track for Public Stream and only first track for Private Streams, 3 = announce every track for Public and Private Streams.
    • Users can now Eavesdrop on the Public Stream without knowing who created it by including the search keyword “public”.
      • Usage example: “!eavesdrop public”
    • Added “Back” menu operation to search results menus.
    • Corrected error during config file reading which caused some settings to be improperly read unless the plugin were loaded twice.
    • Improved accuracy of track progression tracking on heavily loaded servers and over map changes.
    • Fixed calculated “Last Updated” time to properly correct for time difference between the game and MySQL server clocks.
    • If a queued playlist starts during map change, the participating users will be connected to the queued stream after reconnecting to the server.
    • (query.php) Fixed minor error which would improperly format MP3 paths in the playlist when the Jukebox path includes uppercase characters.
    • (browse.php) Improved Browse page’s sorting to properly coordinate target sort column, sort direction and page number.
    • (browse.php) Added visualization to the sorting controls to indicate current status.
    • (browse.php) Added a “Date Added” column to the Browse page.
    • (browse.php, upload.php) Replaced Function text buttons and links with graphical buttons.
    • (browse.php, upload.php) Added various Javascript enhancements in order to improve general ease of use and work flow.
    • (upload.php) Admins and Uploaders can now delete uploaded items directly from within the Add Tracks page.
    • (upload.php) Improved deletion process to allow Windows servers to delete uploaded tracks with spaces in the file name.
    • (upload.php) Subfolder objects in the list now display the number of files within the subfolder.
    • (upload.php) Tracks selected for addition to the library can be selectively removed during the Edit stage.
    • (upload.php) The Add Tracks process will not proceed past the Edit stage until all errors have been cleared.
    • (upload.php) Changed how Jukebox determines the local folder path to avoid a rare and unknown false path issue.
    • (General admin website) Added display of installed Jukebox version.
    • (General admin website) Updated several scripts so that the php.ini setting “short_open_tag” is no longer required to be On.
      • Existing installations are advised to return “short_open_tag” to “Off” if it was previously adjusted.

    Version 0.5.3.3:
    • Added proper character escape step to SQL queries so that searches involving special characters like ‘ and “ will properly execute.

    For additional change log history, please refer to the support manual included within the Jukebox installation bundle.

    Planned Features:

    These are ordered from most to least urgent.
    • Alphabetical sub-grouping of the Browse Menu (2010/01/19)
    • Menu-based eavesdropping, including "who's listening to what" info. (2010/01/11)
    • Better management of queued music. (2010/01/11)
    • Public and Private playlist creation, including the ability to save them to the server for later use. (2010/03/22)
    • Automatic music playback on map change and on first join. (2010/01/11)
    • Automatic database tables installation for easier setup. (2010/01/11)

    Known Bugs:
    • When adding tracks, double quotes (") get dropped from metadata fields right as it is saved to the server (but is carried through the rest of the way) (2009/04/28)

    Reporting Bugs

    The purpose of this beta release is to gather bug-reporting feedback from multiple servers. Progress on Jukebox depends on bug reports.

    When reporting a bug, specify the version of Jukebox that you are running. Provide an appropriately detailed description of the symptoms and the sequence of events that led to it. Specify if the problem is being experience on the game server, the web server or both. Also check the console for errors when attempting to invoke Jukebox commands.

    Include details on the server machine displaying the bug, such as your SourceMod version, game server OS, web server OS, PHP and MySQL version, etc.

    Submit bug reports via this thread, which will be reviewed by SirLamer.

    More Info
    • Server operators are advised to refer to the documentation within the release package for more detailed information.
    • An operational guide tailored to end-users is in development. This manual is accessible from within the game but can also be accessed by clicking here. Note: Though the design and layout is not finished, all the needed information is available.

    Acknowledgements
    Attached Files
    File Type: sp Get Plugin or Get Source (jukebox.sp - 1481 views - 147.0 KB)
    File Type: zip Jukebox for Source v0.5.5.0.zip (525.5 KB, 2176 views)
    File Type: zip Jukebox for Source - UPGRADE 0.5.4.2 to 0.5.5.0.zip (309.8 KB, 560 views)
    File Type: pdf Jukebox for Source v0.5.5.0.pdf (164.0 KB, 1208 views)
    __________________
    Visit TEAM CHEESUS, a TF2 community with our own brand of injected shenanigans, for added flavor.

    Plugins: Jukebox for Source

    Last edited by SirLamer; 08-14-2011 at 20:54. Reason: Update to version 0.5.5.0
    SirLamer is offline
    SirLamer
    Senior Member
    Join Date: Oct 2008
    Old 09-28-2009 , 00:26   Re: Jukebox for Source - Streaming Music System
    Reply With Quote #2

    Reserved for future uses.
    __________________
    Visit TEAM CHEESUS, a TF2 community with our own brand of injected shenanigans, for added flavor.

    Plugins: Jukebox for Source
    SirLamer is offline
    Jindo
    SourceMod Donor
    Join Date: May 2009
    Location: England, UK
    Old 09-28-2009 , 02:30   Re: Jukebox for Source - Streaming Music System
    Reply With Quote #3

    Fantastic, I'll be testing this later!
    __________________
    Jindo is offline
    exvel
    SourceMod Donor
    Join Date: Jun 2006
    Location: Russia
    Old 09-28-2009 , 05:47   Re: Jukebox for Source - Streaming Music System
    Reply With Quote #4


    Good job
    __________________
    For admins: My plugins

    For developers: Colors library
    exvel is offline
    Send a message via ICQ to exvel
    BDeep
    Senior Member
    Join Date: Jun 2009
    Location: NH
    Old 09-28-2009 , 22:05   Re: Jukebox for Source - Streaming Music System
    Reply With Quote #5

    Code:
    L 09/28/2009 - 21:48:38: [SM] Plugin encountered error 11: Invalid memory access
    L 09/28/2009 - 21:48:38: [SM] Displaying call stack trace for plugin "jukebox.smx":
    L 09/28/2009 - 21:48:38: [SM]   [0]  Line 2966, W:\server script\sourcemod123\scripting\jukebox.sp::DelayedDisplayMessage()
    L 09/28/2009 - 21:49:31: [SM] Plugin encountered error 11: Invalid memory access
    L 09/28/2009 - 21:49:31: [SM] Displaying call stack trace for plugin "jukebox.smx":
    L 09/28/2009 - 21:49:31: [SM]   [0]  Line 2966, W:\server script\sourcemod123\scripting\jukebox.sp::DelayedDisplayMessage()
    L 09/28/2009 - 22:00:27: [SM] Plugin encountered error 11: Invalid memory access
    L 09/28/2009 - 22:00:27: [SM] Displaying call stack trace for plugin "jukebox.smx":
    L 09/28/2009 - 22:00:27: [SM]   [0]  Line 2966, W:\server script\sourcemod123\scripting\jukebox.sp::DelayedDisplayMessage()
    I followed the setup instructions to the "T" I can upload files and add them, however when i try to play them from the website a window pops up with a WMP plugin in it but wont play anything. In game the menu comes up but nothing will play. The errors above happen as soon as someone types one of the Jukebox commands. IF you want to see the site PM me and I will get you the URL and a user/pass.

    Also users cannot register after I created my login, it just takes them to the login page when they click "register"

    Other than all of that it looks like a great plugin and I am anxious to get it working.
    __________________
    BDeep is offline
    DontWannaName
    Veteran Member
    Join Date: Jun 2007
    Location: VALVe Land, WA
    Old 09-29-2009 , 01:02   Re: Jukebox for Source - Streaming Music System
    Reply With Quote #6

    Is there somewhere to test or look at it from a website?
    __________________

    DontWannaName is offline
    SirLamer
    Senior Member
    Join Date: Oct 2008
    Old 09-29-2009 , 04:14   Re: Jukebox for Source - Streaming Music System
    Reply With Quote #7

    Do you mean you want to try a demo of the web software?

    I don't have a public demo set up, but that is an interesting idea. I will look into doing that. Since a demo would have to clean out songs once in awhile, it'll require an little extra code that I haven't written yet. But I will consider it and link to it here if I do it.

    Keep in mind that the real product is not the web software, it's the in-game plugin. The website is honestly very simple, functional, and boring.

    BDeep, I am doing some research on your error. This is the first time I've had it reported and I have never seen it myself, so this generic "memory access" error is troubling me right now. If I can't sort it out, I might prepare a special build for you that will spit out some data I can interpret right before throwing that error, to give me some hints.

    Are you sure that error appears as soon as someone types "!jb" and not later when someone selects an item when trying to play a song?

    Edit: I connected to your server to try it out. The !jb command loaded the menu properly, and I told it to play a random song JUST as the map changed. So I wasn't able to gauge the issue properly. After the map changed, Jukebox wouldn't work anymore, though I could tell that it was catch the command because it wouldn't display "/jb" in chat. I know that doesn't tell me much, but maybe if I go back and try it again another time where I don't have such bad timing, I can have a look at how it is behaving on your system.
    __________________
    Visit TEAM CHEESUS, a TF2 community with our own brand of injected shenanigans, for added flavor.

    Plugins: Jukebox for Source

    Last edited by SirLamer; 09-29-2009 at 05:04.
    SirLamer is offline
    DontWannaName
    Veteran Member
    Join Date: Jun 2007
    Location: VALVe Land, WA
    Old 09-29-2009 , 05:57   Re: Jukebox for Source - Streaming Music System
    Reply With Quote #8

    Doesnt it open up the internet game browser to play the music? If so thats the page I would want to see. They always lag clients and the scripts can even crash them and now clients can disable them.
    __________________

    DontWannaName is offline
    BDeep
    Senior Member
    Join Date: Jun 2009
    Location: NH
    Old 09-29-2009 , 09:14   Re: Jukebox for Source - Streaming Music System
    Reply With Quote #9

    SirLamer,

    I had moved it to the disabled folder but not changed the map, LOL. Sorry. I will throw it back in now and change the map so that you can try it out. I think that you might be right about the error as well it might be when they choose an item. I can find out for you today.
    __________________
    BDeep is offline
    shustas
    SourceMod Donor
    Join Date: May 2007
    Location: London
    Old 09-29-2009 , 09:48   Re: Jukebox for Source - Streaming Music System
    Reply With Quote #10

    So is this some another !radio plugin or can it actualy play music for events like hs or connecting or map end?
    And streaming music from where internet or local game server?
    __________________
    shustas is offline
    Reply


    Thread Tools
    Display Modes

    Posting Rules
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is On
    Smilies are On
    [IMG] code is On
    HTML code is Off

    Forum Jump


    All times are GMT -4. The time now is 05:59.


    Powered by vBulletin®
    Copyright ©2000 - 2015, vBulletin Solutions, Inc.
    Theme made by Freecode