GNOME Bugzilla – Bug 378155
Fails to download podcast episodes
Last modified: 2008-08-13 01:38:15 UTC
This bug was reported to the Debian BTS. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=399801 "When Rhythmbox tries to download episodes from the Seminars About Long Term Thinking podcast at http://www.longnow.org/projects/seminars/SALT.xml the status field displays "Waiting" for some time, then displays "Failed". The file is downloaded successfully, though. The status is set to failed in download_progress_cb because info->phase is GNOME_VFS_XFER_PHASE_COMPLETED and info->file_size is 0. I don't know whether this test is wrong or there is a bug in gnome-vfs."
Confirmed, and has also been noted in another feed: http://www.thestory.org/archive/podcast.xml on the mailing list: http://mail.gnome.org/archives/rhythmbox-devel/2007-January/msg00066.html
It certainly does seem to be failing on the filesize test as suggested in comment #0, if I enhance the debug statement on in rb-podcast-manager.c:1200: rb_debug ("error downloading %s, filesize %d", rhythmdb_entry_get_string (data->entry, RHYTHMDB_PROP_LOCATION), info->file_size); I see this in the debug log: (00:00:31) [0x9525478] [rb_podcast_manager_next_file] /home/alex/src/remote-cvs/gnome.org/rhythmbox/podcast/rb-podcast-manager.c:594: processing http://media.longnow.org/seminars/salt-020060922-schell/salt-020060922-schell.mp3 (00:00:32) [0x9525478] [rb_podcast_manager_download_file_info_cb] /home/alex/src/remote-cvs/gnome.org/rhythmbox/podcast/rb-podcast-manager.c:664: got file info results for http://media.longnow.org/seminars/salt-020060922-schell/salt-020060922-schell.mp3 (00:00:32) [0x9525478] [rb_podcast_manager_download_file_info_cb] /home/alex/src/remote-cvs/gnome.org/rhythmbox/podcast/rb-podcast-manager.c:723: creating file /home/alex/podcasts/SALT - Seminars About Long Term Thinking/salt-020060922-schell.mp3 (00:00:32) [0x9525478] [rb_podcast_source_start_download_cb] /home/alex/src/remote-cvs/gnome.org/rhythmbox/sources/rb-podcast-source.c:1748: Start download (00:01:24) [0x9fdae90] [download_progress_cb] /home/alex/src/remote-cvs/gnome.org/rhythmbox/podcast/rb-podcast-manager.c:1200: error downloading http://media.longnow.org/seminars/salt-020060922-schell/salt-020060922-schell.mp3, filesize 0 (00:01:24) [0x9525478] [end_job] /home/alex/src/remote-cvs/gnome.org/rhythmbox/podcast/rb-podcast-manager.c:1142: cleaning up download of http://media.longnow.org/seminars/salt-020060922-schell/salt-020060922-schell.mp3 (00:01:24) [0x9525478] [rb_podcast_source_finish_download_cb] /home/alex/src/remote-cvs/gnome.org/rhythmbox/sources/rb-podcast-source.c:1761: Finish download (00:01:24) [0x9525478] [rb_podcast_manager_next_file] /home/alex/src/remote-cvs/gnome.org/rhythmbox/podcast/rb-podcast-manager.c:568: looking for something to download (00:01:24) [0x9525478] [rb_podcast_manager_next_file] /home/alex/src/remote-cvs/gnome.org/rhythmbox/podcast/rb-podcast-manager.c:582: download queue is empty gnomevfs-info on the <mountpoint> found in the rhythmdb.xml gives the correct info, for some reason gnomevfs isn't returning the right info in the program. $ gnomevfs-info file:///home/alex/podcasts/APM%3A%20The%20Story/the_story_161_Who_Will_Lead_Somalia.mp3 Name : the_story_161_Who_Will_Lead_Somalia.mp3 Type : Regular MIME type : audio/mpeg Default app : rhythmbox.desktop Size : 24473728 Blocks : 47864 I/O block size : 4096 Local : YES SUID : NO SGID : NO Sticky : NO Permissions : 600664 Link count : 1 UID : 501 GID : 500 Access time : Mon Jan 15 23:47:11 2007 Modification time : Thu Jan 11 09:26:21 2007 Change time : Mon Jan 15 23:49:36 2007 Device # : 2050 Inode # : 3211294 Readable : YES Writable : YES Executable : NO
Sorry, here's the gnomevfs-info that corresponds to the longnow example given above: $ gnomevfs-info file:///home/alex/podcasts/SALT%20-%20Seminars%20About%20Long%20Term%20Thinking/salt-020060922-schell.mp3 Name : salt-020060922-schell.mp3 Type : Regular MIME type : audio/mpeg Default app : rhythmbox.desktop Size : 16001152 Blocks : 31296 I/O block size : 4096 Local : YES SUID : NO SGID : NO Sticky : NO Permissions : 600664 Link count : 1 UID : 501 GID : 500 Access time : Tue Jan 16 00:00:37 2007 Modification time : Tue Oct 10 13:44:46 2006 Change time : Tue Jan 16 00:01:24 2007 Device # : 2050 Inode # : 3244231 Readable : YES Writable : YES Executable : NO
This is caused by web servers that don't implement HEAD requests properly (and partly by gnome-vfs not being sufficiently pessimistic). The servers hosting these podcasts don't return the content-length in the HEAD response (but RFC 2616 says they SHOULD). gnome-vfs uses the file size as returned in a HEAD request as info->file_size that gets passed to our callbacks. No content-length header -> file_size == 0.
See bug 330498 for the gnome-vfs side of things.
*** Bug 413661 has been marked as a duplicate of this bug. ***
This may still be a problem; I am experiencing similar symptoms in rhythmbox-0.10.0-8.fc7 with KERA Think! and NPR Science Friday podcasts. I can't find a way in the GUI to divulge the URL of the podcasts for verification.
It is still a known problem (I can reproduce in SVN trunk). The gnome-vfs part appears to have been fixed, but there are still issues with the webservers on the rhythmbox side of things hence the reason the bug is still open. There are probably some hacks that could be done on rhythmbox side to workaround the buggy servers, but I don't know exactly what they would be.
Hmm, regarding NPR Science Friday podcasts, I am managing to successfully download podcasts from this feed: http://www.sciencefriday.com/audio/scifriaudio.xml without having the "Failed" message, so perhaps it is working for some of the podcasts. I am using SVN trunk with gnome-vfs2-2.18.1-4.fc7 on Fedora 7.
Rhythmbox now downloads episodes from all of these podcasts correctly.