gpodder / gpodder-sailfish

gPodder 4 for Sailfish OS Packaging
https://openrepos.net/content/keeperofthekeys/gpodder
49 stars 29 forks source link

Can't play/download podcasts using http authentication #161

Open Quentin-ctrL opened 3 years ago

Quentin-ctrL commented 3 years ago

Hi,

I'm using .htpasswd and .htpasswd for private podcasts and I can't play/download them. I tried to protect only media files or media and feed but nothing works. I'm not sure I'm doing it the right way. Using linux version of Gpodder, I can add credential and I can listen my podcasts. Using android AntennaPod, I can also add credential. Streaming is not possible but download works.

Reading gpodder docs, it seems possible : https://gpodder.github.io/docs/faq.html

Can you confirm it's not possible ?

Keeper-of-the-Keys commented 3 years ago

Hi @Quentin-ctrL, so far I have never dealt with this usecase so I can't tell you anything for certain. That being said the Podcasts table in the database has username/password fields and it seems that the core has a function to extract the username/password from different ways a new podcast URL is entered so my guess is the core supports it (to the best of my knowledge @thp built the core to be mostly on par with functions that existed in gPodder3).

Can you try to add the podcast with the username/password embedded in the URL and update here if that worked?

At the moment there is no UI to change the user/pass after the fact but I guess we can add something.

Do note that the gPodder SQLite database stores the password cleartext.

Quentin-ctrL commented 3 years ago

Hi,

Yes, I tried using http://USERNAME:PASSWORD@example.org/files/feed.xml but it's not working as expected. I had to enter the credential in the podcast option for the linux client.. I tried editing SQLite database using same datas as gPodder for linux. In "PodcastChannel" url is set like "http://USERNAME:PASSWORD@example.org/files/feed.xml" adding auth_username & auth_username No stream or download on sailfish side.

Deleting epidodes (files and db) didn't work.

total 1M     
-rw-r--r--    1 nemo     nemo       87.9K Mar 25 11:30 2021-03-25-01_podcast.jpg
-rw-r--r--    1 nemo     nemo           0 Mar 25 11:30 2021-03-25-01_Livre_Premier_01_podcast.mp3.partial
-rw-r--r--    1 nemo     nemo      904.9K Mar 25 11:30 itunes_image.jpg

I can do more test if necessary

Keeper-of-the-Keys commented 3 years ago

Can you see if there is useful log output (you may need to change the log level to debug)?

@elelay is there an example podcast with authentication that can be used for debugging like you had with soundcloud?

elelay commented 3 years ago

There is https://github.com/gpodder/gpodder/blob/master/tools/test-auth-server.py that you can run on your desktop

ljo commented 3 years ago

@Quentin-ctrL, @Keeper-of-the-Keys, it worked fine for the feeds I tried by setting the _authusername and _authpassword with a sqlite update command. The only caveat was that I updated url field firstly like above where the feed url differed, but had to update link field to get it to work.Cheers