#!/usr/bin/env python3 """Check Webgains 2.0 API for feed download.""" import requests TOKEN = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxMDAwMzEiLCJqdGkiOiIwNjM5ODEwYzQ0YzM1MTBlZmZiMGRkYWNiM2EyNWFlNTg2YzFmNmQ5ODNjNGQ2MDA4NzkwZmM0NTkzY2EyNjg4ZGViZDE4NTgwOThmYjJjYiIsImlhdCI6MTc3MTUxNjc4OS44MzAxMzUsIm5iZiI6MTc3MTUxNjc4OS44MzAxMzcsImV4cCI6MjA4NzA0OTU4OS44MjcwODgsInN1YiI6IjIwMTcwOCIsInNjb3BlcyI6W119.ZxlCDsyBI7_SNUWjO-PUxDYKvQVfuUBzU5n-SgqHdAZCnOj9253yVcJIS5NRXJLrnyx0E_9bn8ymfXS71cvPISA4hPAlKCSMjdkv9f2k2FFwdAlQQ6mdhBB2m9dzHUIn34QwA8s4-ikB1ATKIZeqiJL-3Gh9eiMYPpvaJdCCjN-oGPMhhlehkgA04cZSgwy6HfKgb6uPvUSG9w_tvN8U06uEHKV11DedQHNWWGzuXpd2FEL3baV0z9KjSNMZsJZHx2yHUb6gVWJwaR7_louahMvrPXG-YLgnGvNMcPDPjm-z5HJ-JKcPv9_FBqAYGItZxgeGgVoS8MVhW6lc1a-6CvYtVanfXF42MPPNP-Qq76qRtHPLRBdkIATMuBxVJrMzlprT3n4F0sUUltGR4ixZuzMUm5LeyPMHgmjy2UfYzsl9eVqx0oJCmKUyY9maBXwFLJa8J1NHM_nWp3hPpCGkMyhzHK1DIf_z8Wirg1hp5vKts93eERWJBlQwhucUUS_KnZeC_gVaQ7kT4jCwaEWkpPxPxyXWRoK0mcYS_JGz3JbpVhRLj5DVYIB9k54DXqjYlCx8ezJZE9sf2SX3VWvPvD1xSQD1caTCm0To0B-MkeU1YpEfWdUslpCJXrpOy2Wbs8iDHR1BzNrMnOEr4zbz_EoB4JJe3tGTGjzNLNIw6XI" PUBLISHER_ID = "1347930" HEADERS = {"Authorization": f"Bearer {TOKEN}", "Accept": "application/json"} # Check what the 2.0 API returns r = requests.get("https://api.webgains.com/2.0/feeds/18588/download", headers=HEADERS, timeout=10) print(f"2.0 Status: {r.status_code}") print(f"2.0 Body: {r.text[:500]}") # Try the old webgains feed export URL format # Webgains traditionally uses: https://productdata.webgains.com/newDownloadFeed.html?feedid=XXXX for url in [ "http://productdata.webgains.com/newDownloadFeed.html?feedid=18588", "https://productdata.webgains.com/newDownloadFeed.html?feedid=18588", f"http://productdata.webgains.com/newDownloadFeed.html?feedid=18588&publisherId={PUBLISHER_ID}", ]: try: r = requests.get(url, headers=HEADERS, timeout=10, stream=True, allow_redirects=True) ct = r.headers.get('content-type', '') print(f"\n{r.status_code} {ct[:60]} {url}") if r.status_code == 200: chunk = next(r.iter_content(500)) print(f" FIRST BYTES: {chunk[:300]}") r.close() except Exception as e: print(f"\nERR: {e}")