Our team is happy to release 2.1 Beta 6! This beta should fix all known bugs on the forums, as well as almost all of the issues we've discovered internally (a few very small ones left)
One thing I should mention is that we are still tweaking the database a bit. Unfortunately this means that an uninstall + install is required from previous betas. The download link is here, looking forward to your feedback :)
In past versions, I've had the Virtualhost set to port 8080 since I also have a Wordpress website. I don't believe I have made any changes to that setup.
The installer assumes that your Apache server is listening on port 80 during install (perhaps a bit naive), and you are free to change the port number after install.
What I would do is modify the following files in the install directory:
airtime_mvc/build/airtime.conf
python_apps/api_clients/api_client.cfg
to change the default port to 8080. The install should work after this.
I will look into removing this port 80 assumption for the final release.
I installed beta 6 on my 12.04 i386 server with no problems. Before installing, I uninstalled the previous version and then manually removed the /srv/airtime and /etc/airtime folders. I brought up the web interface on my media storage computer and added 4GB of media files using Add Media - this took almost 2 hours but finished with no problems. I looked in the Playlist Builder and all the files were there. Next I created a show scheduled from 20:40 to 21:40 (5/7/12) and added content to it. So far, so good. After adding the content, I verified that the songs were there and waited for playout to begin.
The On Air light never came on, but I heard the songs begin to play on the radio. About 1.5 minutes into playout the radio stopped, the metadata 'Title' displayed 'Offline' and "Artist' showed 'Airtime'. I used 'sudo tail -f /var/log/airtime/pypo-liquidsoap/lis_script.log' to see what liquidsoap was doing and saw:
2012/05/07 20:44:07 [default_switch:3] Switch to src_5255 with transition. 2012/05/07 20:44:07 [lang:3] transition called... 2012/05/07 20:44:07 [shoutcast_stream_1:3] Metadata update may have failed with error: bad answer 2012/05/07 20:46:57 [decoder:3] Method "MP3" accepted "/var/tmp/airtime/pypo/cache/scheduler/4b8168c9c7a90c1f1fb57553a56ba947.mp3". 2012/05/07 20:46:58 [queue:3] Finished with "/var/tmp/airtime/pypo/cache/scheduler/f1b5ad2fb1379d2fe777ca0433357096.mp3". 2012/05/07 20:46:58 [cue_cut_5142:3] End of track before cue-out point. 2012/05/07 20:46:58 [queue:3] Prepared "/var/tmp/airtime/pypo/cache/scheduler/4b8168c9c7a90c1f1fb57553a56ba947.mp3" (RID 2). 2012/05/07 20:46:58 [cue_cut_5142:2] Ignoring negative cue-in point. 2012/05/07 20:46:58 [lang:3] /usr/lib/airtime/pypo/bin/liquidsoap_scripts/notify.sh --data='0' --media-id=3 & 2012/05/07 20:46:58 [lang:3] Using stream_format 0
This looks very weird to me. Because I was getting dead air, I switched the radio to my backup. Any ideas why playout stopped or why the On Air light never lit? The songs are correctly displayed and highlighted in Now Playing. I tried disabling the stream, saving, and then re-enabling but it never started to play again.
Post edited by Wade Eilrich at 2012-05-08 00:05:52
Please try scheduling the song again and see if the result repeat. From the logs it looks like the file was corrupt and Liquidsoap had to abort half-way through.
Hmmm - that made me check the media-monitor.log and I found lots of warnings like:
2012-05-07 17:11:23,350 WARNING - [MainThread] [mediamonitorcommon.py : is_user_readable()] : LINE 65 - File does not have correct permissions: '/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3'
2012-05-07 18:48:10,108 WARNING - [Thread #3] [workerprocess.py : process_file_events()] : LINE 19 - Liquidsoap integrity check for file at /srv/airtime/stor/imported/Procol Harum/2002-01 - A & B - The Singles/04-Conquistador (Mono)-160kbps.mp3 failed. Not adding to media library.
I checked the master files on the server from which they were uploaded and they are not corrupted. My best guess is that something in the Add Media process did not work. Tomorrow morning I'm going to uninstall Airtime, delete the /srv/airtime and /etc/config folders, reinstall and add a single song.
AirTime is installed and will load on port 8080, but I'm still having issues with Apache. When I log into AirTime, the clock does not display and I can't "add or remove content".
Here are some samples of the apache error.log file:
[Mon May 07 19:36:45 2012] [error] [client 127.0.0.1] File does not exist: /var/www/wordpress/api
[Tue May 08 01:08:12 2012] [error] [client 127.0.0.1] PHP Fatal error: Class 'Application_Common_DateHelper' not found in /usr/share/airtime/application/controllers/ApiController.php on line 390
I uninstalled beta 6 (removing the /etc/airtime and /srv/airtime folders) and did a full install. Next, I opened the web interface and noticed that the station time did not display, but went to Add Media and added a single file. It quickly added the file. Then I examined the media-monitor log and saw problems.
2012-05-08 08:09:09,396 INFO - [MainThread] [media_monitor.py : <module>()] : LINE 70 -
*** Media Monitor bootup ***
2012-05-08 08:09:09,406 DEBUG - [MainThread] [media_monitor.py : configure_locale()] : LINE 32 - No locale currently set. Attempting to get default locale. 2012-05-08 08:09:09,406 DEBUG - [MainThread] [media_monitor.py : configure_locale()] : LINE 47 - New locale set to: en_US.UTF-8 2012-05-08 08:09:12,334 INFO - [MainThread] [media_monitor.py : <module>()] : LINE 80 - Setting up monitor 2012-05-08 08:09:16,762 INFO - [MainThread] [api_client.py : setup_media_monitor()] : LINE 398 - Connected to Airtime Server. Json Media Storage Dir: {u'watched_dirs': [], u'stor': u'/srv/airtime/stor/'} 2012-05-08 08:09:21,765 INFO - [MainThread] [media_monitor.py : <module>()] : LINE 88 - Storage Directory is: /srv/airtime/stor/ 2012-05-08 08:09:21,805 INFO - [MainThread] [media_monitor.py : <module>()] : LINE 95 - Initializing event processor 2012-05-08 08:09:21,850 INFO - [MainThread] [airtimemediamonitorbootstrap.py : __init__()] : LINE 27 - Adding /etc on watch list... 2012-05-08 08:09:27,503 INFO - [MainThread] [airtimemediamonitorbootstrap.py : scan()] : LINE 45 - watched directories found: {u'1': u'/srv/airtime/stor/'} 2012-05-08 08:09:27,503 DEBUG - [MainThread] [airtimemediamonitorbootstrap.py : scan()] : LINE 48 - 1, /srv/airtime/stor/ 2012-05-08 08:09:32,964 DEBUG - [MainThread] [mediamonitorcommon.py : scan_dir_for_new_files()] : LINE 293 - find "/srv/airtime/stor/" -type f -iname "*.ogg" -o -iname "*.mp3" -readable 2012-05-08 08:09:33,016 DEBUG - [MainThread] [airtimemediamonitorbootstrap.py : sync_database_to_filesystem()] : LINE 109 - find /srv/airtime/stor/ -type f -iname '*.ogg' -o -iname '*.mp3' -readable 2012-05-08 08:09:33,070 INFO - [MainThread] [airtimemediamonitorbootstrap.py : sync_database_to_filesystem()] : LINE 130 - Deleted files: set([])
2012-05-08 08:09:33,070 INFO - [MainThread] [airtimemediamonitorbootstrap.py : sync_database_to_filesystem()] : LINE 131 - New files: set([])
2012-05-08 08:09:33,071 INFO - [MainThread] [airtimemediamonitorbootstrap.py : sync_database_to_filesystem()] : LINE 132 - Modified files: set([])
2012-05-08 08:09:33,071 INFO - [MainThread] [airtimenotifier.py : init_rabbit_mq()] : LINE 39 - Initializing RabbitMQ stuff 2012-05-08 08:09:33,242 DEBUG - [MainThread] [connection.py : _start()] : LINE 661 - Start from server, version: 8.0, properties: {u'information': u'Licensed under the MPL. See http://www.rabbitmq.com/', u'product': u'RabbitMQ', u'copyright': u'Copyright (C) 2007-2011 VMware, Inc.', u'capabilities': {}, u'platform': u'Erlang/OTP', u'version': u'2.7.1'}, mechanisms: [u'PLAIN', u'AMQPLAIN'], locales: [u'en_US'] 2012-05-08 08:09:33,255 DEBUG - [MainThread] [connection.py : _open_ok()] : LINE 507 - Open OK! known_hosts [] 2012-05-08 08:09:33,256 DEBUG - [MainThread] [channel.py : __init__()] : LINE 70 - using channel_id: 1 2012-05-08 08:09:33,265 DEBUG - [MainThread] [channel.py : _open_ok()] : LINE 484 - Channel open 2012-05-08 08:09:33,295 INFO - [MainThread] [media_monitor.py : <module>()] : LINE 115 - Added watch to /srv/airtime/stor/ 2012-05-08 08:09:33,295 INFO - [MainThread] [media_monitor.py : <module>()] : LINE 116 - wdd result 2 2012-05-08 08:21:00,912 INFO - [MainThread] [airtimeprocessevent.py : process_IN_MOVED_TO()] : LINE 230 - process_IN_MOVED_TO: <Event cookie=35048 dir=False mask=0x80 maskname=IN_MOVED_TO name=01 Conquistador (Mono).mp3 path=/srv/airtime/stor/organize pathname=/srv/airtime/stor/organize/01 Conquistador (Mono).mp3 wd=3 > 2012-05-08 08:21:00,913 INFO - [MainThread] [mediamonitorcommon.py : organize_new_file()] : LINE 309 - Organizing new file: /srv/airtime/stor/organize/01 Conquistador (Mono).mp3 2012-05-08 08:21:00,913 INFO - [MainThread] [airtimemetadata.py : get_md_from_file()] : LINE 119 - getting info from filepath /srv/airtime/stor/organize/01 Conquistador (Mono).mp3 2012-05-08 08:21:01,272 INFO - [MainThread] [mediamonitorcommon.py : create_file_path()] : LINE 266 - Unique filepath: /srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3 2012-05-08 08:21:01,291 DEBUG - [MainThread] [mediamonitorcommon.py : organize_new_file()] : LINE 315 - Moving from /srv/airtime/stor/organize/01 Conquistador (Mono).mp3 to /srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3 2012-05-08 08:21:01,304 WARNING - [MainThread] [mediamonitorcommon.py : is_user_readable()] : LINE 65 - File does not have correct permissions: '/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3' 2012-05-08 08:21:01,310 WARNING - [MainThread] [mediamonitorcommon.py : is_user_readable()] : LINE 65 - File does not have correct permissions: '/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3' 2012-05-08 08:21:01,322 WARNING - [MainThread] [mediamonitorcommon.py : is_user_readable()] : LINE 65 - File does not have correct permissions: '/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3' 2012-05-08 08:21:01,334 WARNING - [MainThread] [mediamonitorcommon.py : is_user_readable()] : LINE 65 - File does not have correct permissions: '/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3' 2012-05-08 08:21:01,337 WARNING - [MainThread] [mediamonitorcommon.py : is_user_readable()] : LINE 65 - File does not have correct permissions: '/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3' 2012-05-08 08:21:01,487 INFO - [MainThread] [airtimeprocessevent.py : process_IN_CREATE()] : LINE 104 - event: <Event dir=True mask=0x40000100 maskname=IN_CREATE|IN_ISDIR name=imported path=/srv/airtime/stor pathname=/srv/airtime/stor/imported wd=2 > 2012-05-08 08:21:01,488 INFO - [MainThread] [airtimeprocessevent.py : process_IN_MOVED_FROM()] : LINE 218 - process_IN_MOVED_FROM: <Event cookie=35049 dir=False mask=0x40 maskname=IN_MOVED_FROM name=01 Conquistador (Mono).mp3 path=/srv/airtime/stor/organize pathname=/srv/airtime/stor/organize/01 Conquistador (Mono).mp3 wd=3 > 2012-05-08 08:21:01,497 INFO - [MainThread] [airtimeprocessevent.py : process_IN_MOVED_TO()] : LINE 230 - process_IN_MOVED_TO: <Event cookie=35049 dir=False mask=0x80 maskname=IN_MOVED_TO name=01-Conquistador (Mono)-160kbps.mp3 path=/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus pathname=/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3 src_pathname=/srv/airtime/stor/organize/01 Conquistador (Mono).mp3 wd=4 > 2012-05-08 08:21:01,505 INFO - [MainThread] [airtimeprocessevent.py : process_IN_CREATE()] : LINE 104 - event: <Event dir=True mask=0x40000100 maskname=IN_CREATE|IN_ISDIR name=Procol Harum path=/srv/airtime/stor/imported pathname=/srv/airtime/stor/imported/Procol Harum wd=5 > 2012-05-08 08:21:01,513 INFO - [Thread #0] [workerprocess.py : process_file_events()] : LINE 13 - received event {'is_recorded_show': False, 'mode': 'create', 'filepath': '/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3'} 2012-05-08 08:21:02,433 WARNING - [Thread #0] [workerprocess.py : process_file_events()] : LINE 19 - Liquidsoap integrity check for file at /srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3 failed. Not adding to media library.
I noticed the multiple warnings about incorrect permissions and then the final warning that the file failed the Liquidsoap integrity check and was not added to the media library. However, the file does show up in the Playlist Builder. I copied the file from /srv/airtime/stor/imported on to another computer that has a GUI (the server does not) and it plays correctly.
Here's the directory listing for the file on the server in the imported folder: -rw-r--r-- 1 www-data www-data 3318236 May 8 08:20 01-Conquistador (Mono)-160kbps.mp3
Post edited by Wade Eilrich at 2012-05-08 11:36:16
Output of "ls -l /usr/lib/airtime/pypo/bin/liquidsoap_bin/":
-rwxr-xr-x 1 pypo pypo 5053125 May 8 08:09 liquidsoap -rwxr-xr-x 1 pypo pypo 6104720 May 7 15:17 liquidsoap_lucid_amd64 -rwxr-xr-x 1 pypo pypo 4724331 May 7 15:17 liquidsoap_lucid_i386 -rwxr-xr-x 1 pypo pypo 6027027 May 7 15:17 liquidsoap_maverick_amd64 -rwxr-xr-x 1 pypo pypo 4645758 May 7 15:17 liquidsoap_maverick_i386 -rwxr-xr-x 1 pypo pypo 6116820 May 7 15:17 liquidsoap_natty_amd64 -rwxr-xr-x 1 pypo pypo 4692063 May 7 15:17 liquidsoap_natty_i386 -rwxr-xr-x 1 pypo pypo 6553381 May 7 15:17 liquidsoap_oneiric_amd64 -rwxr-xr-x 1 pypo pypo 5086184 May 7 15:17 liquidsoap_oneiric_i386 -rwxr-xr-x 1 pypo pypo 6525196 May 7 15:17 liquidsoap_precise_amd64 -rwxr-xr-x 1 pypo pypo 5053125 May 7 15:17 liquidsoap_precise_i386 -rwxr-xr-x 1 pypo pypo 6097991 May 7 15:17 liquidsoap_squeeze_amd64 -rwxr-xr-x 1 pypo pypo 4717156 May 7 15:17 liquidsoap_squeeze_i386
The output from /usr/lib/airtime/pypo/bin/liquidsoap_bin/liquidsoap -c 'output.dummy(single("/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3"))':
Invalid value at line 1, char 21-127: Could not get a valid media file of kind {audio=2;video=0;midi=0} from "/srv/airtime/stor/imported/Procol Harum/1967-01 - Procol Harum... Plus/01-Conquistador (Mono)-160kbps.mp3".
So the logs were correct that Liquidsoap is rejecting the file. We actually implemented this as a feature since in 2.0.x we were allowing any file to be uploaded and scheduled without verifying whether Liquidsoap would actually play it come ON-AIR time.
In this case though I think your file is correct, and we simply need to add a audio_to_stereo check to the validation since your file appears to be mono and Liquidsoap is expecting a Stereo file :).
I've added a small number of media files, created a show, added files to it, and noticed that I don't have a station time showing (see attached image 006.jpg).
The show started correctly and I can hear the music on the radio, but the On Air light never comes on, the station time does not update, and the information at the top of the page (for the show) is blank (see attached image 007.jpg).
The Liquidsoap ls_script log is reporting problems with cue-in and cue-out points on every song even though they sound like they are playing correctly:
2012/05/08 11:38:31 [cue_cut_5142:3] End of track before cue-out point. 2012/05/08 11:38:31 [queue:3] Prepared "/var/tmp/airtime/pypo/cache/scheduler/7f60d7b01ee0b738ef963914c4234ab7.mp3" (RID 2). 2012/05/08 11:38:31 [cue_cut_5142:2] Ignoring negative cue-in point.
When the Now Playing window updates the display it shows "Processing..." and the dialog is nicely transparent over title that are not playing, but over the currently playing song it is dark gray and obscures the information (see attached image 008.jpg).
Clearing the Firefox (13.0 beta channel) browser cache did not help, but I opened the web interface in Chrome (19.0.1084.41 beta-m), Safari (5.1.5), and IE ( 9.07112.16421 64-bit Edition) and all the elements display correctly (On Air, Station time, and the show info at the top). This may just be a problem with the current build of FF because all the other browsers display those elements correctly.
Post edited by Wade Eilrich at 2012-05-08 15:27:36
I restarted FF and now it is displaying the time, On Air, and show information correctly. I had closed the window, but didn't notice that I had another window opened (and minimized). It must have had stale info and needed the restart.