Page 3 of 3 FirstFirst 123
Results 21 to 30 of 30

Thread: Young Turks Issue

  1. #21
    Junior Member
    Join Date
    Aug 2012
    Posts
    5
    You guys are awesome! It works!! So what did you guys change? Can you comment on the behavior that is being exhibited in the previous versions of the app? Is it something inherent to the Android libraries or something you are not account for? All of the Android apps are showing this same behavior, so I am assuming it is just the default behavior for Android apps using http libraries. Is your application logic to identify the TYTpodcast and act differently only for it, or just to stop pushing the auth header after the successful validation attempt?

    StefanK, I found your previous post from some German podcast that had this issue back in 2011, is it something specific to the Android programming libraries? Or is this something that was just a pseudo-bug in your application? To quote you (or was it the other guy?):

    “…The issue is that this happens automatically by Android’s Http infrastructure – The request is made to the gatekeeper URL with the Authentication headers and when the redirect is received, the Http infrastructure automatically resends the headers to the redirected URL. I will take a look if there is a way to around it…”
    Last edited by wirerat1; 08-24-2012 at 06:00 PM.

  2. #22
    Junior Member
    Join Date
    Aug 2012
    Posts
    2

    Installed BETA 3.0.25 - TYT failure

    Quote Originally Posted by StefanK View Post
    After some extensive debugging I was able to get to the bottom of what is going on and craft a workaround (that seems to work... at least on the several devices I tested it).

    The main issue turned out to be that Amazon S3 servers that end up serving the final file did not like the Authentication headers we were sending them. The solution was to conditionally strip the Authentication headers when making requests to the Amazon servers. (I will be glad to provide more info on the solution if somebody is interested).

    The fix is incorporated in the latest Beta 3.0.25 (available here). Please give it a try and let me know if it works for you.

    Stefan
    I installed the newest BETA version, 3.0.25 but I'm still getting the 401 error when trying to download TYT podcasts. Is there something else in the settings I need to change? I"ve tried both with and without the sync with Google Reader, but no luck either way. Any suggestions would be appreciated.

  3. #23
    Junior Member
    Join Date
    Aug 2012
    Posts
    5
    Quote Originally Posted by bbcoltrane View Post
    I installed the newest BETA version, 3.0.25 but I'm still getting the 401 error when trying to download TYT podcasts. Is there something else in the settings I need to change? I"ve tried both with and without the sync with Google Reader, but no luck either way. Any suggestions would be appreciated.
    I suggest this only because of my own experience, can you verify that you are running the beta version? I have both the tablet version and the beta version running on my Nexus 7 and they obviously both have the same icon. Can you click on the little stack of squares and go More->About BeyondPod and just confirm that it is version 3.0.25? Additionally confirm that your user/pass settings didn't get wiped and that they are valid in your settings for the particular podcast.

    My initial attempt at trying this ended up going through the tablet version and I was perplexed why it wasn't working.

    If you are certain that you are using the right version, I'm not sure. The tablet and beta versions on my device have different profiles. I had the phone version a while back and upgraded to the tablet one. The beta seemed to inherit the phone version settings. I deleted the TYT Podcast and resubscribed and then it worked for me.

    Can you poke at it a bit more and see if you can get it to work?

    What platform are you running on? I am using a Nexus 7.

  4. #24
    Junior Member
    Join Date
    Aug 2012
    Posts
    2

    Problem with TYT

    Quote Originally Posted by wirerat1 View Post
    I suggest this only because of my own experience, can you verify that you are running the beta version? I have both the tablet version and the beta version running on my Nexus 7 and they obviously both have the same icon. Can you click on the little stack of squares and go More->About BeyondPod and just confirm that it is version 3.0.25? Additionally confirm that your user/pass settings didn't get wiped and that they are valid in your settings for the particular podcast.

    My initial attempt at trying this ended up going through the tablet version and I was perplexed why it wasn't working.

    If you are certain that you are using the right version, I'm not sure. The tablet and beta versions on my device have different profiles. I had the phone version a while back and upgraded to the tablet one. The beta seemed to inherit the phone version settings. I deleted the TYT Podcast and resubscribed and then it worked for me.

    Can you poke at it a bit more and see if you can get it to work?

    What platform are you running on? I am using a Nexus 7.
    I've got the Motorola Droid Razr. It's been killer at everything. I did check the "about Beyond Pod" under more settings and saw that it was indeed running the 3.0.25 version. My TYT user name was still intact and I tried re-entering my password just in case. All my other podcast subscriptions remain, but even with the newer version, I still can't get TYT to download.

  5. #25
    Junior Member
    Join Date
    Aug 2012
    Posts
    5
    Well that's discouraging. Just to be clear, your feed URL is: http://feeds.feedburner.com/TYTMembers, right? Just trying to clear up and any ambiguity that may be lingering. I don't know if it makes any difference whatsoever, but can you delete the existing feed and readd it? Just trying to figure out why your experience was different from my own. At any rate, I guess this is where the Beyondpod guys come in and ask some questions. ;-)

  6. #26
    Junior Member
    Join Date
    Aug 2012
    Posts
    5
    BBColtrane, just to make certain we're all on the same page, your account with TYT is active, right? Can you go to the TYT website and download one of the mp3s or videos via the site using the credentials that you are using in Beyondpod? I know this is likely obvious, but it would be the easiest explanation for why it isn't authenticating.

  7. #27
    BeyondPod Team
    Join Date
    Feb 2012
    Posts
    1,033
    wirerat1,

    I think the issue is related partially to Android libraries and partially to the amazon servers that are part of the redirect chain.

    Android has 2 http client libraries that are available to Java apps - one is the standard Apache HTTP Client and the other is HttpURLConnection. BeyondPod currently uses Apache HTTP Client (as until recently was the better option).

    When you set Apache HTTP Client to use Basic authentication, you can specify what site it should sent the authentication if such authentication is requested. The problem with setting the authentication for specific site is that if there are redirects to multiple sites (in TYT case there are 3 sites involved feedproxy.google.com, tytnetwork.com and tytmember.s3.amazonaws.com) you don't know which one will be doing the actual authentication (tytnetwork.com in this case).

    In order to make it work, we have set Apache libraries to authenticate (send Authorization headers) to any site that request authentication. This works fine except that for some reason, once authenticated, Apache libraries continue to send the authentication headers to the subsequent redirects even if they don't request them. Most servers don't care about those headers and ignore them (if not needed). Unfortunately Amazon servers get "confused" by those extra headers and refuse to serve the file.

    The solution I came up is not tied to the TYT feed, but rather targets the amazon servers (s3.amazonaws.com). I put some code that intercepts (using Apache's RequestInterceptor class) each redirected request before it gets sent and looks for any requests targeting s3.amazonaws.com that have a specific query (Signature=xxxx) in the query strings and removes the Authorization header if such is present. The implementation is a bit "cludgy" but seems to work and is the only thing I could come up with.
    (If somebody knows of a better approach, please share it - Apache Http library is quite complex and may have a built-in way to handle this case, but I could not find any way to make it do so). This solution should also work for other feeds that use similar authentication mechanism (basic authentication on their servers and redirecting to amazon servers for the final file).

    I am not sure how HTTPUrlConnection would handle such situation, it may be better, or it may have the same issue.

    Stefan

  8. #28
    Junior Member
    Join Date
    Aug 2012
    Posts
    5
    StefanK, thank you so much for your thorough explanation of the situation and your solution. While I agree the solution may be less than ideal in some regards I applaud you and your team for going the extra mile to implement a solution.

    As you stated, the issue is not with you or your application (in a general sense), but for all intensive purposes with s3.amazonaws.com and their requirement of either basic authentication or their key value in the query string. I appreciate Amazon's situation wanting to ensure that only valid requests are serviced (because obviously this is how they make money off their file service feature).

    Do you have any timetable for when the next general push of your product will be launched? While early adopters might flock to the beta version, it is less than ideal for general consumption.

    Once again, thank you so much for going above and beyond and doing all this on the spur of the moment. It definitely is a testament to how much you care about your customers.

    Thanks again.

  9. #29
    Junior Member
    Join Date
    Sep 2012
    Posts
    1
    I was not able to download TYT podcasts with the released version on my Google Nexus 4G (on Sprint).

    With 3.0.25 Beta, I am able to download podcasts fine.

    Thanks!

  10. #30
    Junior Member
    Join Date
    Jun 2013
    Posts
    29

    It's happening again...

    Quote Originally Posted by StefanK View Post
    wirerat1,

    I think the issue is related partially to Android libraries and partially to the amazon servers that are part of the redirect chain.

    Android has 2 http client libraries that are available to Java apps - one is the standard Apache HTTP Client and the other is HttpURLConnection. BeyondPod currently uses Apache HTTP Client (as until recently was the better option).

    When you set Apache HTTP Client to use Basic authentication, you can specify what site it should sent the authentication if such authentication is requested. The problem with setting the authentication for specific site is that if there are redirects to multiple sites (in TYT case there are 3 sites involved feedproxy.google.com, tytnetwork.com and tytmember.s3.amazonaws.com) you don't know which one will be doing the actual authentication (tytnetwork.com in this case).

    In order to make it work, we have set Apache libraries to authenticate (send Authorization headers) to any site that request authentication. This works fine except that for some reason, once authenticated, Apache libraries continue to send the authentication headers to the subsequent redirects even if they don't request them. Most servers don't care about those headers and ignore them (if not needed). Unfortunately Amazon servers get "confused" by those extra headers and refuse to serve the file.

    The solution I came up is not tied to the TYT feed, but rather targets the amazon servers (s3.amazonaws.com). I put some code that intercepts (using Apache's RequestInterceptor class) each redirected request before it gets sent and looks for any requests targeting s3.amazonaws.com that have a specific query (Signature=xxxx) in the query strings and removes the Authorization header if such is present. The implementation is a bit "cludgy" but seems to work and is the only thing I could come up with.
    (If somebody knows of a better approach, please share it - Apache Http library is quite complex and may have a built-in way to handle this case, but I could not find any way to make it do so). This solution should also work for other feeds that use similar authentication mechanism (basic authentication on their servers and redirecting to amazon servers for the final file).

    I am not sure how HTTPUrlConnection would handle such situation, it may be better, or it may have the same issue.

    Stefan
    I was subscribed to the paid member feed just fine yesterday (with required credentials), then today it doesn't work, and support@tytnetwork.com told me that it's a cache and cookies issue, so I log out and clear cache and cookies, same problem, now "Podcast Access Denied" is scrolling across the top of their site, same thing in every browser I try on any computer even ones that I haven't been logged into their site with or even visited before, so I tell them, and they fix that, but it's still not working...

    I log out of the site on my phone in Chrome (the built-in browser on my Moto X), delete the feed from BeyondPod, back out of the app, swipe it away from multitask, reboot the phone, nuthin. I try it in Internet Explorer, and it works fine without needing my username or password, and I've never logged into my account there! So the credentials aren't the issue, they're not even required, in fact, if you want to try it yourself, they give me the URL with a pre-formatted key that I can give to anybody that requires no credentials and can be distributed infinitely, their full show, so feel free to use it or test it until they fix it:

    https://tytnetwork.com/feed/tytaudio...0bb01c29040f63

    They said "use Podcast Republic" which is a piece of crap compared to BeyondPod. I tried it in iPad Safari and it pushed me to the iTunes app which then let me subscribe to it in the Podcast app, and it listed and downloaded fine without credentials.

    Can BeyondPod explain this please? Are they still using the wonky 3-site authentication system? Is that necessary? Can they do something simpler and more effective?

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •