martinrotter / rssguard

Feed reader (and podcast player) which supports RSS/ATOM/JSON and many web-based feed services.
GNU General Public License v3.0
1.64k stars 125 forks source link

[BUG]: "Unknown File Format" When trying to play a Podcast #1254

Closed TheNightRider12 closed 10 months ago

TheNightRider12 commented 11 months ago

Brief description of the issue

When trying to play a podcast from https://feeds.megaphone.fm/cyberwire-daily-podcast, I get "Unknown File Format". I do not know why

How to reproduce the bug?

  1. Add the podcast URL
  2. Fetch the latest episodes
  3. Try to play the podcast in the media player.

What was the expected result?

To be able to play the podcast without issue.

What actually happened?

I got "Unknown File Format" when trying to play the podcast

Debug log

N/A Nothing appears in the Application Log window when I start it using the instructions. I tried playing multiple podcasts that gave me the error, but nothing is displayed in the Application Log window.

Operating system and version

martinrotter commented 11 months ago

What exact file did you use to install RSS Guard?

Which EXACT article/enclosure does not play?

TheNightRider12 commented 11 months ago

The exact file that I used, I just updated as well, was https://github.com/martinrotter/rssguard/releases/download/4.6.3/rssguard-4.6.3-43d164dc4-win10.exe. As for the exact article that does not play is any of the podcasts under the URL that I linked. https://feeds.megaphone.fm/cyberwire-daily-podcast (CyberWire Daily)

I can play a few other podcasts fine. Such as the SANS Internet Stormcenter, https://isc.sans.edu/dailypodcast.xml. I am not sure what is up with the CyberWire's podcast that is making it not want to play in the internal media player.

martinrotter commented 11 months ago

Please, go into documentation and provide debug log file.

https://rssguard.readthedocs.io/en/stable/contrib/bugs.html

TheNightRider12 commented 11 months ago

Here is the debug log rssguard.log

martinrotter commented 11 months ago

Did you try to reproduce your problem during the same session the log file was created? I ask because your log file is likely invalid, it does not contain expected output from media player component it should have.

EDIT: I tested your podcast URL and it plays here.

image

martinrotter commented 11 months ago

EDIT2: Do this:

  1. Go to your "user data" RSS Guard folder.
  2. Find subfolder "mpv" which contains file "mpv.conf".
  3. Add below line into that file:

    terminal=yes

Now please reproduce your problem again with log file and upload log file here, thanks.

TheNightRider12 commented 11 months ago

Here is the log rssguard.log Also, here is my mpv.conf file as well image

martinrotter commented 11 months ago

You do something wrong because your log file does not contain expected output related to media player component. You have to re-test the broken functionality when log file is recording.

TheNightRider12 commented 11 months ago

So this is from the "Display Application Log" Window

time="    50.845" type="debug" -> core: Delaying scheduled feed auto-downloads and message state synchronization for some time due to another running update.
time="    52.859" type="debug" -> feed-downloader: Downloaded 1863 messages for feed ID '33',operation took 4572710 microseconds.
time="    52.928" type="debug" -> database: SQLite connection 'db_connection_15876' is already active.
time="    52.929" type="debug" -> database: SQLite database connection 'db_connection_15876' to file 'H:/Programs/RSS Guard/data4/database/database.db' seems to be established.
time="    52.930" type="debug" -> core: Updating messages in DB.
time="    52.931" type="debug" -> database: Checking if message with feed-specific custom ID 'https://chrt.fm/track/2748D7/https://traffic.libsyn.com/securitypodcast/8784.mp3' is present in DB.
time="    59.430" type="debug" -> feed-downloader: Updating messages in DB took 6502083 microseconds.
time="    59.431" type="debug" -> feed-downloader: 0 unread messages and 0 total messages for feed '33' stored in DB.
time="    59.442" type="debug" -> feed-downloader: Made progress in feed updates, total feeds count 1/1 (id of feed is 33).
time="    59.449" type="debug" -> feed-downloader: Finished feed updates in thread '0xcf0'.
time="    59.465" type="debug" -> CTRL is NOT pressed while sorting articles - sorting with standard mode.
time="    59.491" type="debug" -> message-model: Repopulated model, SQL statement is now:
 'SELECT Messages.id, Messages.is_read, Messages.is_important, Messages.is_deleted, Messages.is_pdeleted, Messages.feed, Messages.title, Messages.url, Messages.author, Messages.date_created, Messages.contents, Messages.enclosures, Messages.score, Messages.account_id, Messages.custom_id, Messages.custom_hash, Feeds.title, Feeds.is_rtl, CASE WHEN LENGTH(Messages.enclosures) > 10 THEN 'true' ELSE 'false' END AS has_enclosures, (SELECT GROUP_CONCAT(Labels.name) FROM Labels WHERE Messages.labels LIKE "%." || Labels.custom_id || ".%") as msg_labels, Messages.labels FROM Messages LEFT JOIN Feeds ON Messages.feed = Feeds.custom_id AND Messages.account_id = Feeds.account_id WHERE Feeds.custom_id IN ('33') AND Messages.is_deleted = 0 AND Messages.is_pdeleted = 0 AND Messages.account_id = 1 ORDER BY Messages.date_created DESC;'.
time="    59.492" type="debug" -> gui: Reloading of msg selections took 27 miliseconds.
time="    61.608" type="debug" -> core: Saved data with auto-saver for 'CookieJar' and method 'saveCookies'.
time="    62.465" type="debug" -> CTRL is NOT pressed while sorting articles - sorting with standard mode.
time="    62.467" type="debug" -> core: Displaying messages from feeds IDs: ''34'' and URLs: 'https://podcast.elevationchurch.org/feed.xml'.
time="    62.475" type="debug" -> message-model: Repopulated model, SQL statement is now:
 'SELECT Messages.id, Messages.is_read, Messages.is_important, Messages.is_deleted, Messages.is_pdeleted, Messages.feed, Messages.title, Messages.url, Messages.author, Messages.date_created, Messages.contents, Messages.enclosures, Messages.score, Messages.account_id, Messages.custom_id, Messages.custom_hash, Feeds.title, Feeds.is_rtl, CASE WHEN LENGTH(Messages.enclosures) > 10 THEN 'true' ELSE 'false' END AS has_enclosures, (SELECT GROUP_CONCAT(Labels.name) FROM Labels WHERE Messages.labels LIKE "%." || Labels.custom_id || ".%") as msg_labels, Messages.labels FROM Messages LEFT JOIN Feeds ON Messages.feed = Feeds.custom_id AND Messages.account_id = Feeds.account_id WHERE Feeds.custom_id IN ('34') AND Messages.is_deleted = 0 AND Messages.is_pdeleted = 0 AND Messages.account_id = 1 ORDER BY Messages.date_created DESC;'.
time="    66.891" type="debug" -> gui: Message list got focus with reason 'Qt::MouseFocusReason'.
time="    66.894" type="debug" -> gui: Current row changed - proxy 'QModelIndex(0,6,0x17e3a007a30,MessagesProxyModel(0x17e261dc6f0, name = MessagesProxyModel))', source 'QModelIndex(0,6,0x0,MessagesModel(0x17e25f9ddb0))'.
time="    66.907" type="debug" -> gui: HTML image resizing took 0 miliseconds.
time="    67.008" type="debug" -> gui: Hovered link: 'QUrl()'.
time="    70.249" type="debug" -> gui: Message list got focus with reason 'Qt::PopupFocusReason'.
time="    70.257" type="debug" -> libmpv: Configuration file 'mpv.conf' already exists.
time="    70.258" type="debug" -> libmpv: Configuration file 'input.conf' already exists.
time="    70.317" type="debug" -> network: Settings of BaseNetworkAccessManager loaded.
time="    84.614" type="debug" -> gui: Message list got focus with reason 'Qt::MouseFocusReason'.
time="    84.615" type="debug" -> gui: Current row changed - proxy 'QModelIndex(1,6,0x17e3a007a30,MessagesProxyModel(0x17e261dc6f0, name = MessagesProxyModel))', source 'QModelIndex(1,6,0x0,MessagesModel(0x17e25f9ddb0))'.
time="    84.617" type="debug" -> gui: HTML image resizing took 0 miliseconds.
time="    84.688" type="debug" -> gui: Hovered link: 'QUrl()'.
time="    89.313" type="debug" -> gui: Message list got focus with reason 'Qt::PopupFocusReason'.
time="    89.318" type="debug" -> libmpv: Configuration file 'mpv.conf' already exists.
time="    89.320" type="debug" -> libmpv: Configuration file 'input.conf' already exists.

time=" 70.257" type="debug" -> libmpv: Configuration file 'mpv.conf' already exists. Is when I went to play the podcast and I got the error. Nothing related to that error appeared. So I do not know what else to do as I watched the debug application window log as I clicked and went to play the podcast and nothing of interest showed up.

martinrotter commented 11 months ago

Yes, but the output of libmpv-related actions should be much more verbose. "terminal=yes" is where it should be right?

TheNightRider12 commented 11 months ago

Yes it is. At least I believe so.

volume=50
osd-color=1.0/0.5/0.25
hwdec=auto-safe
terminal=yes

Under H:\Programs\RSS Guard\data4\mpv\mpv.conf (Where I have the program installed)

martinrotter commented 11 months ago

Well, I am out of ideas. Here your videos play without any problems on Windows.

TheNightRider12 commented 11 months ago

As a workaround, I can play the podcasts in the internal browser. Without using the Internal Media Player. So that is something I can do instead.

martinrotter commented 11 months ago

Yes, but still, you did not provide expected log file. File is expected many lines, similar in format like this:

[cplayer] Waiting for scripts...
[osd/libass] libass API version: 0x1701000
[osd/libass] libass source: tarball: 0.17.1
[osd/libass] Shaper: FriBidi 1.0.13 (SIMPLE) HarfBuzz-ng 8.2.1 (COMPLEX)
[osd/libass] Setting up fonts...
[osd/libass] Using font provider fontconfig
[osd/libass] Done.
[cplayer] Set property: shared-script-properties -> 1
[cplayer] Set property: user-data/osc/visibility="auto" -> 1
[cplayer] Set property: shared-script-properties -> 1
[cplayer] Set property: user-data/osc/margins={"b":0,"l":0,"t":0,"r":0} -> 1
[cplayer] Done loading scripts.
[cplayer] Set property: shared-script-properties -> 1
[cplayer] Set property: user-data/osc/margins={"b":0,"l":0,"t":0,"r":0} -> 1
[libmpv_render] GL_VERSION='4.6 (Compatibility Profile) Mesa 23.3.0'
[libmpv_render] Detected desktop OpenGL 4.6.
[libmpv_render] GL_VENDOR='Intel'
[libmpv_render] GL_RENDERER='Mesa Intel(R) HD Graphics 630 (KBL GT2)'
[libmpv_render] GL_SHADING_LANGUAGE_VERSION='4.60'
[libmpv_render] Loaded extension GL_KHR_debug.
[libmpv_render] GL_*_swap_control extension missing.
[libmpv_render] Testing FBO format rgba16f
[libmpv_render] Using FBO format rgba16f.

EDIT: I found the problem with logging. The "--log" logging method does not catch mpv-logs.

Run RSS Guard like this:

  1. Open command line and navigate to folder of RSS Guard.
  2. Run this: rssguard.exe > full_log.txt 2>&1.
  3. Reproduce your problem and then close RSS Guard.
  4. Upload "full_log.txt" file.

Sorry for above misunderstandings.

TheNightRider12 commented 10 months ago

Got it! This should be what you are looking for full_log.txt

martinrotter commented 10 months ago

I see that you are opening URL "https://thecyberwire.com/podcasts/daily-podcast/1973/notes". This URL is URL of some article in the provided feed?

Also, logs say that:

[ytdl_hook] No youtube-dl found with path yt-dlp.exe in config directories 
[ytdl_hook] Found youtube-dl with path yt-dlp in PATH 

So you have "youtube-dl" tool installed in your system? If so then this "youtube-dl" is likely outdated and does not support provided URL. You have to make sure to use bundled "yt-dlp.exe" as this one supports MUCH more URLs than original youtube-ld tool.

https://github.com/ytdl-org/youtube-dl https://github.com/yt-dlp/yt-dlp

TheNightRider12 commented 10 months ago

I do not have YouTube-DL installed on my system. I only have YT-DLP installed and I just updated it as well on my whole system. I even checked my PATH and there is no YouTube-DL there. Only YT-DLP. I wonder if it's an upstream YT-DLP issue and not being able to handle the URL "https://thecyberwire.com/podcasts/daily-podcast/1973/notes".

TheNightRider12 commented 10 months ago

So. I think I found the issue on my end. When I click into the Podcast from the "Feeds" page and I am able to view the list of Podcast episodes in the side bar. I found the issue. When I right click on an entry and click "Play in Media Player", I think it attempts plays the notes/Description of the podcast. Like the description of the podcast. However. When I right click the "Audio / MPEG" blue link and THEN right click "Play In Media Player", it plays fine. I think for whatever reason, right clicking the podcast episodes themselves in the Popup once you go into a Podcast, it tries to play the Podcast's Description. Not the actual podcast itself.

I was able to reproduce this with other podcasts that are having a similar issue.

martinrotter commented 10 months ago

Please give picture or video where exactly you click and select to play.

TheNightRider12 commented 10 months ago

Here you go https://vimeo.com/898937550?share=copy This should explain it better

martinrotter commented 10 months ago

Yes, your video confirms it.

Some articles/feeds link to TEXTual original article and attach media as attachments (that is the AUDIO/MPEG link). So yes, you yourself have to kind of know depending on particular feed what to "play" if URL or attachment.