Github Issues for RSS-Bridge/rss-bridge

Username _rdx_king29 - Posts, Stories & Tags - Imgsed Bridge failed with error 0

by: Aditya200429

```
Exception: Unable to find user `_rdx_king29` in bridges/ImgsedBridge.php line 62

index.php(72): RssBridge->main()
lib/RssBridge.php(103): DisplayAction->execute()
actions/DisplayAction.php(68): DisplayAction->createResponse()
actions/DisplayAction.php(118): ImgsedBridge->collectData()
bridges/ImgsedBridge.php(62)

Query string: action=display&post=on&story=on&tagged=on&context=Username&u=_rdx_king29&bridge=ImgsedBridge&format=Rss&proxy=http://193.151.189.181:8085&proxy=http://185.68.184.128:8085
Version: 2024-02-02 (git.master.4bad1c1)
Os: Linux
PHP version: 7.4.33
```

Client Challenge - Bandcamp Band failed with: Unable to find band ID on: https://makeupandvanityset.bandcamp.com/music

by: pigmonkey

This error started occurring yesterday for all the Bandcamp bands I track. I do see a `band_id` on the page, but it is inside a ginormous `<div id="pagedata" data-blob="...&amp;band_id=4052837389&amp;...">`.

```
Exception: Unable to find band ID on: https://makeupandvanityset.bandcamp.com/music in lib/utils.php line 259

index.php(73): RssBridge->main()
lib/RssBridge.php(39): RssBridge->{closure}()
lib/RssBridge.php(37): BasicAuthMiddleware->__invoke()
middlewares/BasicAuthMiddleware.php(13): RssBridge->{closure}()
lib/RssBridge.php(37): CacheMiddleware->__invoke()
middlewares/CacheMiddleware.php(44): RssBridge->{closure}()
lib/RssBridge.php(37): ExceptionMiddleware->__invoke()
middlewares/ExceptionMiddleware.php(17): RssBridge->{closure}()
lib/RssBridge.php(37): SecurityMiddleware->__invoke()
middlewares/SecurityMiddleware.php(19): RssBridge->{closure}()
lib/RssBridge.php(37): MaintenanceMiddleware->__invoke()
middlewares/MaintenanceMiddleware.php(10): RssBridge->{closure}()
lib/RssBridge.php(37): TokenAuthenticationMiddleware->__invoke()
middlewares/TokenAuthenticationMiddleware.php(10): RssBridge->{closure}()
lib/RssBridge.php(34): DisplayAction->__invoke()
actions/DisplayAction.php(54): DisplayAction->createResponse()
actions/DisplayAction.php(89): BandcampBridge->collectData()
bridges/BandcampBridge.php(168): throwServerException()
lib/utils.php(259)

Query string: action=display&bridge=Bandcamp&context=By+band&band=makeupandvanityset&type=changes&limit=5&format=Atom
Version: 2025-08-05 (git.master.eb5f552)
Os: Linux
PHP version: 7.4.3-4ubuntu2.29
```
Maintainer: @sebsauvage, @Roliga

Add more entries for Facebook/Instagram bridges

by: smnthermes

Labels: Feature-Request

**Is your feature request related to a problem? Please describe.**
Some Facebook/Instagram profiles post many times per day, so it's possible to miss some of them.

**Describe the solution you'd like**
Add more entries for Facebook/Instagram bridges.

**Describe alternatives you've considered**
None so far.

[ABC News Bridge] Support National Top Stories

by: alexvong243f

Labels: Feature-Request

**Is your feature request related to a problem? Please describe.**
Right now ABC News Bridge only supports Regional Top Stories (ACT, NSW, NT, QLD, SA, TAS, VIC, WA), it would be great if it also supports National Top Stories https://www.abc.net.au/news

**Describe the solution you'd like**
Add a new option for ABC News Bridge to scrape National Top Stories from https://www.abc.net.au/news and generate rss feed from it.

**Describe alternatives you've considered**
ABC News (Australia) has a twitter account for National Top Stories. In theory, we can simply use the twitter bridge and be done with it. In practice, twitter seems to keep breaking 3rd party programs, so perhaps it's more reliable to scrape directly from the website.

**Additional context**
None at the moment.

Bridge request for Ko-fi

by: girlpunk

Labels: Bridge-Request

# Bridge request

<!--
This is a bridge request. Start by adding a descriptive title (i.e. `Bridge request for GitHub`). Use the "Preview" button to see a preview of your request. Make sure your request is complete before submitting!

Notice: This comment is only visible to you while you work on your request. Please do not remove any of the lines in the template (you may add your own outside the "<!--" and "- ->" lines!)
-->

## General information

<!--
Please describe what you expect from the bridge. Whenever possible provide sample links and screenshots (you can just paste them here) to express your expectations and help others understand your request. If possible, mark relevant areas in your screenshot. Use the following questions for reference:
-->

- _Host URI for the bridge_ (i.e. `https://github.com`): https://ko-fi.com/

- Which information would you like to see?

Posts by a specific user

- How should the information be displayed/formatted?

Given the paywall nature of the site, output similar to Patreon is probably best (showing only the title and a link to the post, which a logged in supported would be able to use to view the content)

- Which of the following parameters do you expect?

- [X] Title
- [X] URI (link to the original article)
- [ ] Author
- [ ] Timestamp
- [ ] Content (the content of the article)
- [ ] Enclosures (pictures, videos, etc...)
- [ ] Categories (categories, tags, etc...)

## Options

<!--Select options from the list below. Add your own option if one is missing:-->

- [ ] Limit number of returned items
- _Default limit_: 5
- [ ] Load full articles
- _Cache articles_ (articles are stored in a local cache on first request): yes
- _Cache timeout_ (max = 24 hours): 24 hours
- [X] Balance requests (RSS-Bridge uses cached versions to reduce bandwith usage)
- _Timeout_ (default = 5 minutes, max = 24 hours): 5 minutes

<!--Be aware that some options might not be available for your specific request due to technical limitations!-->

<!--
## Additional notes

Keep in mind that opening a request does not guarantee the bridge being implemented! That depends entirely on the interest and time of others to make the bridge for you.

You can also implement your own bridge (with support of the community if needed). Find more information in the [RSS-Bridge Documentation](https://rss-bridge.github.io/rss-bridge/For_Developers/index.html) developer section.
-->

JustWatch Bridge misses some titles

by: passthesh3ll

Labels: Bug-Report

**Describe the bug**
After some hours that a title is posted in justwatch website, the title is not posted in justwatch bridge rss.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to JustWatch Bridge
2. Click on Country:"Italy" and Type:"All"
3. Go to JustWatch Wesbsite
4. Find a missing title between the latest titles

**Expected behavior**
All titles of justwatch website should be posted in justwatch rss

**Screenshots**
![image](https://github.com/RSS-Bridge/rss-bridge/assets/63223659/d1f29d1b-d5ee-4c60-ba16-ccf274b9b4fe)


**Desktop (please complete the following information):**
- OS: Archlinux
- Browser: Brave
- Version: 1.62.156 Chromium: 121.0.6167.139 (Official Build) (a 64 bit)

**Additional context**
n/a

Option to buffer/queue a bridge's outgoing requests

by: K4LCIFER

Labels: Feature-Request

**Is your feature request related to a problem? Please describe.**
Services often rate limit requests, so if RSS-Bridge makes too many requests too quickly, all subsequent requests from that Bridge will be dropped until the rate-limit lifts. This is partially mitigated by the implementation of the CACHE_TIMEOUT option, which specifies the length of time that a feed stores the previously fetched results before making a new request, but it does nothing to prevent requests from individual feeds from the same bridge being made in quick succession.

**Describe the solution you'd like**
There should be an option available for bridges that specifies the minimum amount of time between requests from any feed. This can be tuned to the rate limit of any service.

It would function like the following: If a request is outgoing (the respective feed's cache timeout has expired), a separate timer will be set which must expire before a second outgoing request can be made, so if a second outgoing request is received before the timer expires, it must wait in a queue for the time to expire before it's sent out. If many requests are received all at once, they are buffered and sent out individually as the timer cycles.

**Describe alternatives you've considered**
None.

**Additional context**
I've encountered this, for example, with the Spotify bridge. If one has many artists to be fetched, they will start to be constantly rate limited.

Mrss feed format is wrong for most media based feeds

by: KAGEYAM4

Labels: Bug-Report

**Describe the bug**
I was using variety which requires Mrss feed, the only feed that worked was [flikr](https://rss-bridge.org/bridge01/?action=display&bridge=FlickrBridge&context=Explore&format=Html). Most other feeds don't work. example - [Pinterest](https://rss-bridge.org/bridge01/?action=display&bridge=PinterestBridge&context=By+username+and+board&u=VIGOIndustries&b=bathroom-remodels&format=Html)

After inspecting flikr feed by searching with `media` there were many results. But only one `media` text was found in pinterest and other image based rss feeds.

**To Reproduce**
Steps to reproduce the behavior:
1. Generate Pinterest Mrss feed
3. Load in https://github.com/varietywalls/variety using thes `Add > MRss feed`
4. See error

![image](https://github.com/RSS-Bridge/rss-bridge/assets/75798544/c339017a-cf28-4e86-acff-3d91930932b7)


**Expected behavior**
Mrss to be correctly read by variety.

**Desktop (please complete the following information):**
- OS: [e.g. Arch Linux x86_64, Kernel : 6.7.4-zen1-1-zen
- Browser Firefox
- Version 122.0.1 (64-bit)

Bridge request for Ebaumsworld.com

by: mrbenns

Labels: Bridge-Request

# Bridge request

<!--
This is a bridge request. Start by adding a descriptive title (i.e. `Bridge request for GitHub`). Use the "Preview" button to see a preview of your request. Make sure your request is complete before submitting!

Notice: This comment is only visible to you while you work on your request. Please do not remove any of the lines in the template (you may add your own outside the "<!--" and "- ->" lines!)
-->

## General information

<!--
Please describe what you expect from the bridge. Whenever possible provide sample links and screenshots (you can just paste them here) to express your expectations and help others understand your request. If possible, mark relevant areas in your screenshot. Use the following questions for reference:
-->

- _Host URI for the bridge_ (i.e. `https://github.com`):https://www.ebaumsworld.com/

- Which information would you like to see? Full Text feed - none of the parsers I have tried work on their feed (https://www.ebaumsworld.com/rss/featured/) and it is limited to particular areas



- How should the information be displayed/formatted?



- Which of the following parameters do you expect?

- [X] Title
- [X] URI (link to the original article)
- [X] Author
- [X] Timestamp
- [X] Content (the content of the article)
- [X] Enclosures (pictures, videos, etc...)
- [X] Categories (categories, tags, etc...)

## Options

<!--Select options from the list below. Add your own option if one is missing:-->

- [ ] Limit number of returned items
- _Default limit_: 5
- [X] Load full articles
- _Cache articles_ (articles are stored in a local cache on first request): yes
- _Cache timeout_ (max = 24 hours): 24 hours
- [X] Balance requests (RSS-Bridge uses cached versions to reduce bandwith usage)
- _Timeout_ (default = 5 minutes, max = 24 hours): 5 minutes

<!--Be aware that some options might not be available for your specific request due to technical limitations!-->

<!--
## Additional notes

Keep in mind that opening a request does not guarantee the bridge being implemented! That depends entirely on the interest and time of others to make the bridge for you.

You can also implement your own bridge (with support of the community if needed). Find more information in the [RSS-Bridge Wiki](https://github.com/RSS-Bridge/rss-bridge/wiki/For-developers) developer section.
-->

Creating a bridge with cookie PHPSESSID

by: esp13

I'm trying to create a bridge, I'm a beginner.
When you first come to the webpage I'm trying to RSS-bridge you have a form where you select multiple inputs but it already show you the firsts results without your inputs.
I successfully managed to create the bridge on this page without the form inputs configured with getSimpleHTMLDOM.

Now I'm trying to go further by making it work with the desired inputs.

The form has multiple inputs fields and a submit button that seems to launch some javascript, then you came on the same page with the results customised.

I first tried to pass the POST parameters to the getSimpleHTMLDOM url, but it seems it is only affecting the form and not the results.

I found that cookies are created with the form inputs. I guess it is by this way that the inputs are transmitted?
There is a PHPSESSION cookie that is created too. Can it be used to transmit the inputs too?

I tried this but I think it's not the right way: (I write the desiredvalues harcoded for my tests.)
```
$arr_cookie_options = array (
'expires' => time() + 60*60*24*30,
'path' => '/',
'domain' => 'www.websiteurl.com', // leading dot for compatibility or use subdomain
'secure' => false, // or false
'httponly' => false, // or false
'samesite' => 'None' // None || Lax || Strict
);
setcookie('ad_dep', 'desiredvalue', $arr_cookie_options);
setcookie('av_arr', 'desiredvalue', $arr_cookie_options);
setcookie('av_dep', 'desiredvalue', $arr_cookie_options);
setcookie('date_dep', 'desiredvalue', $arr_cookie_options);
setcookie('h_deb_r', 'desiredvalue', $arr_cookie_options);
setcookie('h_fin_r', 'desiredvalue', $arr_cookie_options);
setcookie('PHPSESSID', 'lastidfromfirefox', $arr_cookie_options);
setcookie('places_r', 'desiredvalue', $arr_cookie_options);
setcookie('type_li', 'desiredvalue', $arr_cookie_options);
setcookie('ville_arr', 'desiredvalue', $arr_cookie_options);
setcookie('ville_dep', 'desiredvalue', $arr_cookie_options);

$domdelapage = getSimpleHTMLDOM('https://www.websiteurl.com/search.html?L_cal_date=&L_jour_dep=desiredvalue&L_mois_annee_dep=desiredvalue&ville_dep=desiredvalue&L_places_r=desiredvalue&ville_arr=desiredvalue&L_h_deb_r=desiredvalue&L_h_fin_r=desiredvalue&rech_autour=O&L_lebouton=&L_nbre_enreg=-1&L_javascript=O');
```
I guess it is not the proper way to set the cookies. I should maybe follow the PepperBridge ?
With something like that:
```
// Get Cookies header to do the query
$cookiesHeaderValue = $this->getCookiesHeaderValue($url);
```
```
// CURL Options
$opts = [
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $queryJSON
];
$json = getContents($url, $header, $opts);
```

I guess it would be better to get the PHPSESSID from the website. I should maybe follow the PixivBridge?
With something like that:
```
private function checkCookie(array $headers)
{
if (array_key_exists('set-cookie', $headers))
{
foreach ($headers['set-cookie'] as $value)
{
if (str_starts_with($value, 'PHPSESSID='))
{
parse_str(strtr($value, ['&' => '%26', '+' => '%2B', ';' => '&']), $cookie);
if ($cookie['PHPSESSID'] != $this->getCookie())
{
$this->saveCacheValue('cookie', $cookie['PHPSESSID']);
}
break;
}
}
}
}


private function getCookie()
{
// checks if cookie is set, if not initialise it with the cookie from the config
$value = $this->loadCacheValue('cookie');
if (!$value)
{
$value = $this->getOption('cookie');

// 30 days + 1 day to let cookie chance to renew
$this->saveCacheValue('cookie', $this->getOption('cookie'), 2678400);
}
return $value;
}


//Cache getContents by default
private function getData(string $url, bool $cache = true, bool $getJSON = false, array $httpHeaders = [], array $curlOptions = [])
{
$cookie_str = $this->getCookie();
if ($cookie_str)
{
$curlOptions[CURLOPT_COOKIE] = 'PHPSESSID=' . $cookie_str;
}

if ($cache)
{
$response = $this->loadCacheValue($url);
if (!$response || is_array($response))
{
$response = getContents($url, $httpHeaders, $curlOptions, true);
$this->saveCacheValue($url, $response);
}
}

else
{
$response = getContents($url, $httpHeaders, $curlOptions, true);
}

$this->checkCookie($response->getHeaders());

if ($getJSON)
{
return json_decode($response->getBody(), true);
}

return $response->getBody();
}
```

On a shell with curl I get the good customized results with this:
`curl 'https://www.websiteurl.com/search.html' --compressed -X POST -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Origin: https://www.websiteurl.com' -H 'Connection: keep-alive' -H 'Referer: https://www.websiteurl.com/search.html' -H 'Cookie: PHPSESSID=lastidfromfirefox; ville_dep=desiredvalue; ville_arr=desiredvalue; date_dep=desiredvalue; places_r=desiredvalue; h_deb_r=desiredvalue; h_fin_r=desiredvalue; type_li=desiredvalue; av_dep=desiredvalue; av_arr=desiredvalue; ad_dep=desiredvalue' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: same-origin' -H 'Sec-Fetch-User: ?1' -H 'Priority: u=0, i' --data-raw 'L_cal_date=&L_jour_dep=desiredvalue&L_mois_annee_dep=desiredvalue&ville_dep=desiredvalue&L_places_r=desiredvalue&ville_arr=desiredvalue&L_h_deb_r=desiredvalue&L_h_fin_r=desiredvalue&rech_autour=O&L_lebouton=&L_nbre_enreg=-1&L_javascript=O'`

What the best way to follow?

Thank you for your help (and sorry for my bad English)

Discussion: ICS Support

by: captn3m0

Labels: Feature-Request

Creating this issue to discuss a possible idea: ICS Support.

ICS calendars are great, interoperable, and quite similar to RSS Feeds:

- They can be subscribed by clients
- The client decides how they look/behave
- Client polls the ICS URL to fetch any updates

The usecases are slightly different though. RSS targets "newsfeeds" primarily. This project is proof that it can be used for far more than just news feeds, but general updates of any kind. However, there are 2 major limitations:

1. RSS timestamps aren't really used by clients. This means for "event" like bridges (Like I was working on at #1394), you are left with filling the event datetime information inside HTML, which makes it unusable for most clients.
2. RSS doesn't support "future" publications. The spec leaves this to the client, which may decide to not show future posts. In general, news/RSS is about events that have happened, and ICS is about things that are going to. This distinction makes it hard for RSS to be used for event posts.

A couple of examples from the wild:

1. [MuSpy](https://muspy.com/) supports subscribing to artists you like (via a very easy Last.FM integration) using both RSS and ICS. The ICS feed shows me "future releases" as well on the correct dates on my calendar, which is very important. We have similar bridges (Discogs, BandCamp), but none support Future releases.
2. [Meetup supports both RSS and ICS feeds](https://www.meetup.com/meetup_api/feeds/). The ICS feed is only for member notifications sadly, but if there were easier ways for me to subscribe to meetup via ICS, I'd use it over RSS.
3. [CloudSploit](https://cloudsploit.freshdesk.com/support/solutions/articles/17000062890-how-do-i-get-notified-of-upcoming-releases-) sends out notifications about "future" changes to their API via a shared google calendar.

Since the project is called "RSS" bridge, I'm not entirely sure if adding ICS support within this is a good idea. I don't want to create a fork either, because that would fragment the bridges. Keeping it on the same project also has a few other advantages:

1. All bridges automatically start supporting ICS (might not be great, but usable automatically)
2. Any bridge can opt-out of ICS by setting a config option.
3. Any bridge that wants a special-opt-in can define a `collectICSData` (or similar) method to convert the data to be better suited to ICS format.

The ICS spec is at https://tools.ietf.org/html/rfc5545. It isn't exactly great, but this would only require a minor subset to be implemented.

Mangadex 400 Bad Request (my instance only)

by: mattconnell

Labels: Bug-Report

**Describe the bug**
When I try to create a feed using the Mangadex bridge, using any URL, I get a 400 Bad request error.

> 400 Bad Request
>
> This is usually caused by an incorrectly constructed http request.
>
> https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400
> Details
> Type: HttpException
> Code: 400
> Message: https://api.mangadex.org/manga/f9c33607-9180-4ba6-b85c-e4b5faee7192/feed?limit=10&order%5BreadableAt%5D=desc&translatedLanguage[]=en&includes[]=manga&includes[]=scanlation_group&includes[]=user resulted in 400 Bad Request
> File: lib/http.php
> Line: 36

<img width="1349" height="1234" alt="Image" src="https://github.com/user-attachments/assets/ce7c5ff0-fe9f-4d6d-9721-506705a634f7" />

**To Reproduce**

I can only reproduce this on my own bridge instance, which leads me to believe that I have something misconfigured.

**Expected behavior**

Successful output, e.g., from the official instance

<img width="822" height="523" alt="Image" src="https://github.com/user-attachments/assets/e1ed8da4-e5d0-4f41-ad79-d572c7a661d4" />

**Additional context**

Again, I can only reproduce this on my own instance. All other bridges (without documented bugs) work fine on my instance except this one. I can click on the api dot mangadex dot com URL and get a proper response, so the URL that is being generated is correct and valid, but the request being sent from the bridge results in a 400. I think I have something misconfigured but I can't discern what it is.

Why Instagram bridge does not work and possible solutions

by: em92

Recently there are a lot of new issues and comments about instagram bridge throwing 429 errors https://github.com/RSS-Bridge/rss-bridge/issues/1863 https://github.com/RSS-Bridge/rss-bridge/issues/1885 and even workaround from https://github.com/RSS-Bridge/rss-bridge/issues/1617#issuecomment-646679996 does not help.

First of all, I want to clarify, that there is no maintainer of InstagramBridge. Recent commit https://github.com/RSS-Bridge/rss-bridge/commit/56b2c516e49b26b26258fe11787518cae5737b10 had to be pushed long time ago. By maintainer I mean person, that at least fixes bugs or reports why it is certain bug is not fixable at the moment and comments on InstagramBridge PRs.

429 error means "Too many requests". It means that Instagram servers receive a lot of requests from your server (not only rss-bridge instance). So InstagramBridge on public and popular RSS-Bridge instance will probably throw this error.

There are opinions, if we make somehow InstagramBridge to login via existing account, it won't show such errors. To prove that in practice, private credentials feature has to be implemented. There is issue for that https://github.com/RSS-Bridge/rss-bridge/issues/1170 and draft PR https://github.com/RSS-Bridge/rss-bridge/pull/1343. But @teromene won't continue working on that PR, so someone has to continue his work.

Possible solutions for users:
- Deploy RSS-Bridge on your personal PC or laptop and use InstagramBridge from there.
- Deploy RSS-Bridge on your VPS, make sure that only certain people use it and use InstagramBridge from there.
- Use bibliogram https://sr.ht/~cadence/bibliogram/ instead of RSS-Bridge.

Note, that deploying RSS-Bridge on shared hosting probably won't help, 'cos there would be other users making requests to instagram on the same server.

Bandcamp Label failed with: count(): Argument #1 ($value) must be of type Countable|array, null given

by: sid115

```
TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in bridges/BandcampBridge.php line 181

index.php(73): RssBridge->main()
lib/RssBridge.php(39): RssBridge->{closure:RssBridge::main():37}()
lib/RssBridge.php(37): BasicAuthMiddleware->__invoke()
middlewares/BasicAuthMiddleware.php(13): RssBridge->{closure:RssBridge::main():37}()
lib/RssBridge.php(37): CacheMiddleware->__invoke()
middlewares/CacheMiddleware.php(44): RssBridge->{closure:RssBridge::main():37}()
lib/RssBridge.php(37): ExceptionMiddleware->__invoke()
middlewares/ExceptionMiddleware.php(17): RssBridge->{closure:RssBridge::main():37}()
lib/RssBridge.php(37): SecurityMiddleware->__invoke()
middlewares/SecurityMiddleware.php(19): RssBridge->{closure:RssBridge::main():37}()
lib/RssBridge.php(37): MaintenanceMiddleware->__invoke()
middlewares/MaintenanceMiddleware.php(10): RssBridge->{closure:RssBridge::main():37}()
lib/RssBridge.php(37): TokenAuthenticationMiddleware->__invoke()
middlewares/TokenAuthenticationMiddleware.php(10): RssBridge->{closure:RssBridge::main():33}()
lib/RssBridge.php(34): DisplayAction->__invoke()
actions/DisplayAction.php(54): DisplayAction->createResponse()
actions/DisplayAction.php(89): BandcampBridge->collectData()
bridges/BandcampBridge.php(181)

Query string: action=display&bridge=BandcampBridge&context=By+label&label=44labelgroup&type=changes&limit=5&format=Html
Version: 2025-08-05
Os: Linux
PHP version: 8.4.20
```
Maintainer: @sebsauvage, @Roliga

I noticed that the `mobile/22/band_details` API fails for non-browser clients:
```bash
php -r "
\$url = 'https://bandcamp.com/api/mobile/22/band_details?band_id=855335734';
echo file_get_contents(\$url);
"
```
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; img-src 'self' data:; media-src 'self' data:; object-src 'none'; style-src 'self' 'sha256-o4vzfmmUENEg4chMjjRP9EuW9ucGnGIGVdbl8d0SHQQ='; script-src 'self' 'sha256-a9bHdQGvRzDwDVzx8m+Rzw+0FHZad8L0zjtBwkxOIz4=';"
/>
<link
href="/_fs-ch-1T1wmsGaOgGaSxcX/assets/inter-var.woff2"
rel="preload"
as="font"
type="font/woff2"
crossorigin
/>
<link href="/_fs-ch-1T1wmsGaOgGaSxcX/assets/styles.css" rel="stylesheet" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Client Challenge</title>
<style>
#loading-error {
font-size: 16px;
font-family: 'Inter', sans-serif;
margin-top: 10px;
margin-left: 10px;
display: none;
}
</style>
</head>
<body>
<noscript>
<div class="noscript-container">
<div class="noscript-content">
<img
src="/_fs-ch-1T1wmsGaOgGaSxcX/assets/errorIcon.svg"
alt=""
role="presentation"
class="error-icon"
/>
<span class="noscript-span"
>JavaScript is disabled in your browser.</span
>
<p>Please enable JavaScript to proceed.</p>
</div>
</div>
</noscript>
<div id="loading-error" role="alert" aria-live="polite">
A required part of this site couldn’t load. This may be due to a browser
extension, network issues, or browser settings. Please check your
connection, disable any ad blockers, or try using a different browser.
</div>
<script>
function loadScript(src) {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.onload = resolve;
script.onerror = (event) => {
console.error('Script load error event:', event);
document.getElementById('loading-error').style.display = 'block';
reject(
new Error(
`Failed to load script: ${src}, Please contact the service administrator.`
)
);
};
script.src = src;
document.body.appendChild(script);
});
}

loadScript('/_fs-ch-1T1wmsGaOgGaSxcX/errors.js')
.then(() => {
const script = document.createElement('script');
script.src = '/_fs-ch-1T1wmsGaOgGaSxcX/script.js?reload=true';
script.onerror = (event) => {
console.error('Script load error event:', event);
const errorMsg = new Error(
`Failed to load script: ${script.src}. Please contact the service administrator.`
);
console.error(errorMsg);
handleScriptError();
};
document.body.appendChild(script);
})
.catch((error) => {
console.error(error);
});
</script>
</body>
</html>
```

Adding a user agent works:
```bash
php -r "
\$ctx = stream_context_create(['http' => ['header' => 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:124.0) Gecko/20100101 Firefox/124.0']]);
\$url = 'https://bandcamp.com/api/mobile/22/band_details?band_id=855335734';
echo file_get_contents(\$url, false, \$ctx);
" | head -5
```
```json
{"id":855335734,"name":"44 LABEL GROUP","bio_image_id":38431589,"bio_image_width":1500,"bio_image_height":1500,"bio":null,"bandcamp_url":"https://44labelgroup.bandcamp.com","sites":[{"url":"https://44-label.group","title":"44-label.group"}],"discography":[{"item_id":2541678268,"item_type":"album","artist_name":"IN VERRUF","band_name":"44 LABEL GROUP","title":"44025","art_id":211093016,"release_date":"24 Apr 2026 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":437525331,"item_type":"album","artist_name":"UEBERREST","band_name":"44 LABEL GROUP","title":"44024","art_id":1588817083,"release_date":"20 Mar 2026 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1960617134,"item_type":"album","artist_name":"WESTBAM, RICHARD BUTLER","band_name":"44 LABEL GROUP","title":"You Need The Drugs (Kobosil Kartell Mix)","art_id":938693125,"release_date":"12 Dec 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3511759299,"item_type":"track","artist_name":"SOMEWHEN","band_name":"44 LABEL GROUP","title":"Promise","art_id":2649423267,"release_date":"21 Nov 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3695281854,"item_type":"track","artist_name":"LUCIANO, UEBERREST","band_name":"44 LABEL GROUP","title":"Push It (Ueberrest Remix)","art_id":465296125,"release_date":"21 Nov 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":851718225,"item_type":"track","artist_name":"AZZLE 447","band_name":"44 LABEL GROUP","title":"Komm (feat.Juju)","art_id":1542574221,"release_date":"07 Nov 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2781316374,"item_type":"album","artist_name":"KOBOSIL","band_name":"44 LABEL GROUP","title":"BR3ATH3","art_id":2152454253,"release_date":"15 Oct 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":321202568,"item_type":"album","artist_name":"VARIOUS ARTISTS","band_name":"44 LABEL GROUP","title":"SEKTION 5","art_id":1681898946,"release_date":"29 Aug 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2313600780,"item_type":"track","artist_name":"DRAKK, ÖTAK","band_name":"44 LABEL GROUP","title":"Gangstas","art_id":2265997292,"release_date":"22 Aug 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3959706282,"item_type":"track","artist_name":"SOMEWHEN","band_name":"44 LABEL GROUP","title":"Fever Dream","art_id":471991480,"release_date":"15 Aug 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":393578522,"item_type":"track","artist_name":"NEW FRAMES, KOBOSIL","band_name":"44 LABEL GROUP","title":"Staub (Kobosil Glut Mix)","art_id":3199113129,"release_date":"01 Aug 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":176739675,"item_type":"track","artist_name":"PRADA2000","band_name":"44 LABEL GROUP","title":"GoGoGo! (VIP Intro Mix)","art_id":1774662771,"release_date":"18 Jul 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":4004698274,"item_type":"album","artist_name":"UEBERREST","band_name":"44 LABEL GROUP","title":"44014","art_id":1352193883,"release_date":"02 May 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3045865414,"item_type":"album","artist_name":"IN VERRUF","band_name":"44 LABEL GROUP","title":"44012","art_id":197471224,"release_date":"04 Apr 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2982851547,"item_type":"album","artist_name":"KOBOSIL, UEBERREST","band_name":"44 LABEL GROUP","title":"Cryptic (Kobosil Hart Mix)","art_id":3091755548,"release_date":"21 Mar 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":4046782271,"item_type":"album","artist_name":"RIKHTER","band_name":"44 LABEL GROUP","title":"SURREAL CURVED DREAMS","art_id":2077061274,"release_date":"07 Mar 2025 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":888452135,"item_type":"album","artist_name":"KUKO","band_name":"44 LABEL GROUP","title":"44010","art_id":1455647112,"release_date":"20 Dec 2024 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3773368940,"item_type":"album","artist_name":"SOMEWHEN","band_name":"44 LABEL GROUP","title":"44009","art_id":1426658586,"release_date":"06 Dec 2024 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1505003246,"item_type":"album","artist_name":"UEBERREST","band_name":"44 LABEL GROUP","title":"44008","art_id":2716385477,"release_date":"01 Aug 2024 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2444089164,"item_type":"album","artist_name":"VARIOUS ARTISTS","band_name":"44 LABEL GROUP","title":"SEKTION 4","art_id":2536492089,"release_date":"08 Jul 2024 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1460830661,"item_type":"album","artist_name":"KUKO","band_name":"44 LABEL GROUP","title":"44004","art_id":3202349940,"release_date":"01 Jun 2024 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":4230876817,"item_type":"album","artist_name":"KOBOSIL, UEBERREST","band_name":"44 LABEL GROUP","title":"RADIANCE","art_id":2988423215,"release_date":"17 May 2024 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2785060572,"item_type":"album","artist_name":"RIKHTER","band_name":"44 LABEL GROUP","title":"44002","art_id":482162361,"release_date":"15 Apr 2024 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":841804271,"item_type":"album","artist_name":"KOBOSIL, KUKO","band_name":"44 LABEL GROUP","title":"EISKALT","art_id":3381587923,"release_date":"01 Mar 2024 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1427662696,"item_type":"album","artist_name":"UEBERREST","band_name":"44 LABEL GROUP","title":"R009","art_id":2868532432,"release_date":"15 Dec 2023 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":717743938,"item_type":"album","artist_name":"KANDER","band_name":"44 LABEL GROUP","title":"R007","art_id":892908061,"release_date":"24 Nov 2023 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2309138143,"item_type":"album","artist_name":"IN VERRUF","band_name":"44 LABEL GROUP","title":"R006","art_id":3354899222,"release_date":"06 Oct 2023 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":4011711910,"item_type":"album","artist_name":"SOMEWHEN","band_name":"44 LABEL GROUP","title":"R005","art_id":4215433136,"release_date":"08 Sep 2023 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":994580270,"item_type":"album","artist_name":"VARIOUS ARTISTS","band_name":"44 LABEL GROUP","title":"SEKTION 3","art_id":939630472,"release_date":"02 Jun 2023 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2319709615,"item_type":"album","artist_name":"KANDER","band_name":"44 LABEL GROUP","title":"R002","art_id":1442391023,"release_date":"13 Apr 2023 09:34:47 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2102570514,"item_type":"album","artist_name":"RIKHTER","band_name":"44 LABEL GROUP","title":"R001","art_id":2165328584,"release_date":"10 Feb 2023 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3677022500,"item_type":"album","artist_name":"NEW FRAMES","band_name":"44 LABEL GROUP","title":"RNF4","art_id":754906393,"release_date":"09 Dec 2022 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3657542926,"item_type":"album","artist_name":"FRANCK","band_name":"44 LABEL GROUP","title":"RF1","art_id":4253345403,"release_date":"11 Nov 2022 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1281721424,"item_type":"album","artist_name":"KOBOSIL","band_name":"44 LABEL GROUP","title":"RK5","art_id":4195504627,"release_date":"31 Oct 2022 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":764227446,"item_type":"album","artist_name":"VARIOUS ARTISTS","band_name":"44 LABEL GROUP","title":"SEKTION 2","art_id":686485245,"release_date":"02 Jun 2022 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1525833512,"item_type":"album","artist_name":"AIDEN","band_name":"44 LABEL GROUP","title":"RA1","art_id":44645771,"release_date":"07 Apr 2022 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3266737234,"item_type":"album","artist_name":"PARALLX","band_name":"44 LABEL GROUP","title":"RP5","art_id":2887667716,"release_date":"10 Feb 2022 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":591090579,"item_type":"album","artist_name":"AFEM SYKO","band_name":"44 LABEL GROUP","title":"RAS1","art_id":1957038926,"release_date":"02 Dec 2021 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1855740349,"item_type":"album","artist_name":"WALLIS","band_name":"44 LABEL GROUP","title":"RW1","art_id":3785895781,"release_date":"15 Oct 2021 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":891136474,"item_type":"album","artist_name":"IN VERRUF // KOBOSIL","band_name":"44 LABEL GROUP","title":"RR6","art_id":3175857051,"release_date":"01 Oct 2021 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3241715365,"item_type":"album","artist_name":"RIKHTER","band_name":"44 LABEL GROUP","title":"DOMA","art_id":2550171858,"release_date":"10 Sep 2021 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1113873857,"item_type":"album","artist_name":"IN VERRUF","band_name":"44 LABEL GROUP","title":"RIV4","art_id":3413866653,"release_date":"21 Jul 2021 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":828115805,"item_type":"album","artist_name":"KANDER","band_name":"44 LABEL GROUP","title":"RKR1","art_id":1575282668,"release_date":"14 May 2021 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1005904186,"item_type":"album","artist_name":"RADICAL G // PARALLX","band_name":"44 LABEL GROUP","title":"RR5","art_id":347092734,"release_date":"05 Mar 2021 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":689185807,"item_type":"album","artist_name":"RIKHTER","band_name":"44 LABEL GROUP","title":"RIK4","art_id":4000535455,"release_date":"04 Dec 2020 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3223136246,"item_type":"album","artist_name":"SOMEWHEN","band_name":"44 LABEL GROUP","title":"RS1","art_id":695156510,"release_date":"04 Sep 2020 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1000192533,"item_type":"album","artist_name":"IN VERRUF","band_name":"44 LABEL GROUP","title":"RIV2","art_id":1368782587,"release_date":"04 Aug 2020 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1498256870,"item_type":"album","artist_name":"VARIOUS ARTISTS","band_name":"44 LABEL GROUP","title":"SEKTION 1","art_id":1058832812,"release_date":"01 Jun 2020 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":883405095,"item_type":"album","artist_name":"NEW FRAMES","band_name":"44 LABEL GROUP","title":"RNF2","art_id":3874306417,"release_date":"24 Jan 2020 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":423126390,"item_type":"album","artist_name":"IN VERRUF","band_name":"44 LABEL GROUP","title":"RIV1","art_id":1240384526,"release_date":"07 Jan 2020 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3683288039,"item_type":"album","artist_name":"RIKHTER","band_name":"44 LABEL GROUP","title":"RIK2","art_id":1948795596,"release_date":"08 Nov 2019 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2086399965,"item_type":"album","artist_name":"ROSA ANSCHÜTZ // KOBOSIL","band_name":"44 LABEL GROUP","title":"RR4","art_id":492627618,"release_date":"30 Aug 2019 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1096734109,"item_type":"album","artist_name":"PARALLX","band_name":"44 LABEL GROUP","title":"RP4","art_id":3233394611,"release_date":"28 Jun 2019 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1435591195,"item_type":"album","artist_name":"RIKHTER","band_name":"44 LABEL GROUP","title":"RIK1","art_id":110256790,"release_date":"07 Jun 2019 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1242238161,"item_type":"album","artist_name":"KOBOSIL","band_name":"44 LABEL GROUP","title":"RK4","art_id":1039822569,"release_date":"15 Mar 2019 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":1512284701,"item_type":"album","artist_name":"RADICAL G & THE HORRORIST // KOBOSIL","band_name":"44 LABEL GROUP","title":"RR2","art_id":4051683054,"release_date":"28 Jan 2019 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3084836970,"item_type":"album","artist_name":"PARALLX // SOMEWHEN","band_name":"44 LABEL GROUP","title":"RR1","art_id":4183119706,"release_date":"30 Nov 2018 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2758109625,"item_type":"album","artist_name":"NEW FRAMES","band_name":"44 LABEL GROUP","title":"RNF1","art_id":684887811,"release_date":"05 Oct 2018 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2630183085,"item_type":"album","artist_name":"HN42","band_name":"44 LABEL GROUP","title":"RH2","art_id":1879751669,"release_date":"19 Apr 2018 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":193367829,"item_type":"album","artist_name":"PARALLX","band_name":"44 LABEL GROUP","title":"RP1","art_id":555619256,"release_date":"21 Mar 2018 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":86538248,"item_type":"album","artist_name":"PARALLX","band_name":"44 LABEL GROUP","title":"RP2","art_id":1679987569,"release_date":"14 Sep 2017 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":2643858025,"item_type":"album","artist_name":"HN42","band_name":"44 LABEL GROUP","title":"RH1","art_id":3201836046,"release_date":"20 Oct 2016 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":624305619,"item_type":"album","artist_name":"KOBOSIL","band_name":"44 LABEL GROUP","title":"RK2","art_id":886842646,"release_date":"28 Jun 2016 00:00:00 GMT","is_purchasable":true,"band_id":855335734},{"item_id":3856352409,"item_type":"album","artist_name":"KOBOSIL","band_name":"44 LABEL GROUP","title":"RK1","art_id":288833037,"release_date":"20 Apr 2014 00:00:00 GMT","is_purchasable":true,"band_id":855335734}],"location":"Berlin, Germany","header_image_id":null,"shows":[],"navbar_titles":{"m":"// MUSIC //","p":"merch","l":"live streams","a":"// 44 //","v":"video","u":"audio","s":"subscribe","c":"community"},"merch":[],"artists":[]}
```

embedded youtube videos broken

by: Tone866

I'm not sure if this is the right place for this, but perhaps someone has some thoughts on the matter.

I've noticed that none of the YouTube videos from multiple bridges (e.g. CaschysBlog, Golem, Heise) are working in the feed anymore.
The player always returns error 153.

It looks like YouTube has changed its policies, and this error occurs if no referrer policy is set.

But ReferrerPolicys are set on the webserver, but we are looking at it from a rss-client, so I don't really know how to solve it. Perhaps we could set a parameter for the embedded YouTube video that YouTube would ignore the referrer, but I haven't found such an option.
Otherwise, perhaps the RSS clients would have to implement a hack?
I'm not really sure about this.

What do you think?

Improvement: State of functionality today

by: Bockiii

Labels: Feature-Request

Hi,

I spent some time going through all bridges that are currently in the app and determine if they are working, not working or partly working, including some notes.

Starting off this list, we should talk about some maintenance.

Edit: [Here ](https://docs.google.com/spreadsheets/d/1rD8M_tRVkgcuI2tizyL8QwEYTWDeTxiDIphB5U4k4RE/edit?usp=sharing)is the google sheets version. I created two filter views ("All Comments" and "All non working") but you can also add your own temp filters.

Bridge | Working | Completely Broken | Partially Broken | Undefined | Maintainer | Comment
-- | -- | -- | -- | -- | -- | --
ABCTabsBridge.php |   | x |   |   | kranack |  
AcrimedBridge.php | x |   |   |   | qwertygc |  
AirBreizhBridge.php | x |   |   |   | fanch317 |  
AlbionOnlineBridge.php | x |   |   |   | otakuf |  
AllocineFRBridge.php | x |   |   |   | superbaillot.net |  
AmazonBridge.php | x |   |   |   | Alexis CHEMEL |  
AmazonPriceTrackerBridge.php | x |   |   |   | captn3m0, sal0max |  
AnidexBridge.php |   |   | x |   | ORelio | Default selection works, none of the other selections do
AnimeUltimeBridge.php | x |   |   |   | ORelio | "Drama" returns nothing. Either category unused or wrong
AO3Bridge.php |   |   | x |   | Obsidienne | Formatting catastrophic
AppleAppStoreBridge.php | x |   |   |   | captn3m0 | I could not find a difference between the country selections
AppleMusicBridge.php | x |   |   |   | bockiii |  
ARDMediathekBridge.php |   |   |   |   | yue-dongchen |  
Arte7Bridge.php | x |   |   |   | mitsukarenai |  
ArtStationBridge.php |   | x |   |   | thefranke |  
AsahiShimbunAJWBridge.php | x |   |   |   | somini | Could receive a rework to include article content
AskfmBridge.php | x |   |   |   | az5he6ch, logmanoriginal |  
ASRockNewsBridge.php | x |   |   |   | VerifiedJoseph |  
AtmoNouvelleAquitaineBridge.php | x |   |   |   | floviolleau | It work but… wow. Adding 4300 cities was the easiest solution?
AtmoOccitanieBridge.php | x |   |   |   | floviolleau |  
AutoJMBridge.php |   |   |   | x | sysadminstory | I dont know how to use this bridge
AwwwardsBridge.php | x |   |   |   | Paroleen |  
BadDragonBridge.php |   |   | x |   | Roliga | Sales have stopped since march 2020 because of covid. Everything else seems to be broken
BAEBridge.php |   |   | x |   | couraudt | Formatting catastrophic
BakaUpdatesMangaReleasesBridge.php | x |   |   |   | fulmeek |  
BandcampBridge.php | x |   |   |   | sebsauvage, Roliga |  
BastaBridge.php | x |   |   |   | qwertygc | Some embedded images are broken. Would require some touches
BinanceBridge.php |   |   | x |   | thefranke | "Announcements" are broken, "Blog" does not retrieve content. Should be reworked
BlaguesDeMerdeBridge.php | x |   |   |   | superbaillot.net, logmanoriginal | Working BUT: Page wasn't updated since June 2020 and it's a french-bad-joke-collection. Would remove
BleepingComputerBridge.php |   | x |   |   | csisoap |  
BlizzardNewsBridge.php | x |   |   |   | Niehztog |  
BooruprojectBridge.php | x |   |   |   | mitsukarenai | Works but might need a little more explanation and mandatory values
BrutBridge.php | x |   |   |   | VerifiedJoseph |  
BukowskisBridge.php | x |   |   |   | Qluxzz |  
BundesbankBridge.php | x |   |   |   | logmanoriginal |  
CachetBridge.php | x |   |   |   |   |  
CastorusBridge.php | x |   |   |   | logmanoriginal |  
CeskaTelevizeBridge.php | x |   |   |   | kolarcz |  
CNETBridge.php |   | x |   |   | ORelio | "all articles" is working, everything else seems to be broken
CNETFranceBridge.php | x |   |   |   | leomaradan | Could receive a rework to include article content
CodebergBridge.php |   | x |   |   | VerifiedJoseph | Commits work, everything else is in different states of broken
CollegeDeFranceBridge.php | x |   |   |   | pit-fgfjiudghdf | Minor thing: Links seem to double //
ComboiosDePortugalBridge.php | x |   |   |   | somini | No idea what information this is supposed to give, but it works
ComicsKingdomBridge.php | x |   |   |   | stjohnjohnson |  
CommonDreamsBridge.php | x |   |   |   | nyutag | Could receive a rework to include article content
ContainerLinuxReleasesBridge.php |   | x |   |   | captn3m0 | All Broken
CopieDoubleBridge.php | x |   |   |   | superbaillot.net | Minor thing: Titles seem to double // . It also seems like every post is just one image, so it could be included in the feed as well.
CourrierInternationalBridge.php | x |   |   |   | teromene |  
CrewbayBridge.php | x |   |   |   | couraudt |  
CryptomeBridge.php |   | x |   |   | BoboTiG | It does not seem to retrieve what it's supposed to. There are newer documents than the 3 it retrieves
CuriousCatBridge.php | x |   |   |   | VerifiedJoseph |  
DailymotionBridge.php |   |   | x |   | mitsukarenai | User and Playlist works, Search does not
DanbooruBridge.php |   | x |   |   | mitsukarenai, logmanoriginal | Site seems to be dead
DansTonChatBridge.php | x |   |   |   | Astalaseven |  
DarkReadingBridge.php |   |   | x |   | ORelio | "All" does not work, the categories themselves do. Needs a defaultlinkto treatment on the content
DauphineLibereBridge.php |   |   | x |   | qwertygc | Articles work with Titles but the content is wrong
DaveRamseyBlogBridge.php |   | x |   |   | johnpc | He has moved his site to ramseysolutions.com, bridge broken
DavesTrailerPageBridge.php | x |   |   |   | johnnygroovy |  
DealabsBridge.php | x |   |   |   | sysadminstory |  
DemoBridge.php | x |   |   |   | teromene |  
DerpibooruBridge.php | x |   |   |   | Roliga | No Titles on any of the feed items
DesoutterBridge.php | x |   |   |   | logmanoriginal |  
DeveloppezDotComBridge.php | x |   |   |   | polopollo | Works but could use some content cleanup (iframes etc)
DevToBridge.php |   |   |   |   | logmanoriginal |  
DiarioDeNoticiasBridge.php | x |   |   |   | somini |  
DiarioDoAlentejoBridge.php | x |   |   |   | somini | Feed item content is only an image. Could retrieve rework to include article content
DiceBridge.php |   |   | x |   | rogerdc | The feed seems to work BUT: It's a feed for job search and the title does not go to the feed item. So it's useless. Rework the title link
DilbertBridge.php | x |   |   |   | kranack |  
DiscogsBridge.php |   |   | x |   | teromene | The bridge retrieves something, but all dates are wrong and I can not identify which sorting mechanism is used. So the info is kind of useless
DockerHubBridge.php | x |   |   |   | VerifiedJoseph |  
DonnonsBridge.php |   |   | x |   | Binnette | Images are broken, feed works
DownDetectorBridge.php |   |   |   | x | teromene | Some languages seem to be broken, some are empty. Needs a sanity check on all languages
DribbbleBridge.php | x |   |   |   | quentinus95 |  
Drive2ruBridge.php | x |   |   |   | dotter-ak | I can't understand a thing but it seems to be doing what it is supposed to do.
DuckDuckGoBridge.php |   | x |   |   | Astalaseven |  
EconomistBridge.php | x |   |   |   | bockiii | Freshly reworked
EliteDangerousGalnetBridge.php | x |   |   |   | corenting |  
ElloBridge.php | x |   |   |   | teromene |  
ElsevierBridge.php |   | x |   |   | Pierre Mazière |  
EngadgetBridge.php |   | x |   |   | IceWreck | Possible updates: Blog Title is really bad. "This content is not available.." infos in the article could be cut
EpicgamesBridge.php | x |   |   |   | otakuf |  
EsquerdaNetBridge.php |   |   | x |   | somini | "Video" broken. Other possible updates: Remove iframe and script notes from the articles
EstCeQuonMetEnProdBridge.php | x |   |   |   | ORelio | Why is this a bridge? It's basically an 8-ball machine
EtsyBridge.php |   | x |   |   | logmanoriginal |  
ETTVBridge.php |   | x |   |   | GregThib | Site dead
ExplosmBridge.php | x |   |   |   | bockiii |  
ExtremeDownloadBridge.php | x |   |   |   | sysadminstory | URLs dont match at all in title, actual url and info
EZTVBridge.php |   | x |   |   | alexAubin | Referencing old url
FabriceBellardBridge.php | x |   |   |   | somini |  
FacebookBridge.php |   | x |   |   | teromene, logmanoriginal |  
FB2Bridge.php |   | x |   |   | teromene |  
FDroidBridge.php | x |   |   |   | Mitsukarenai | Possible update: double / in Title link
FicbookBridge.php |   | x |   |   | logmanoriginal |  
FilterBridge.php | x |   |   |   | Frenzie, ORelio |  
FindACrewBridge.php | x |   |   |   | couraudt | Possible update: Formatting is not great
FirefoxAddonsBridge.php | x |   |   |   | VerifiedJoseph |  
FirstLookMediaTechBridge.php | x |   |   |   | somini | Last article from 09-2020. Still needed?
FlickrBridge.php | x |   |   |   | logmanoriginal |  
FM4Bridge.php |   | x |   |   | joni1993 |  
FolhaDeSaoPauloBridge.php |   | x |   |   | somini | Seems to be broken. Also: Is this in essence a filter/feedexpander bridge?
FootitoBridge.php | x |   |   |   | superbaillot.net | Last article from 09-2020. Still needed?
ForGifsBridge.php | x |   |   |   | logmanoriginal | Only 1 gif in the feed?
Formula1Bridge.php | x |   |   |   | AxorPL |  
FourchanBridge.php | x |   |   |   | mitsukarenai | Works but needs board and thread id. Not sure who would use this.
FreeCodeCampBridge.php | x |   |   |   | IceWreck |  
FSecureBlogBridge.php | x |   |   |   | simon816 |  
FurAffinityBridge.php | x |   |   |   | Roliga |  
FurAffinityUserBridge.php |   |   |   | x | CyberJacob | Dont have a user account
FuturaSciencesBridge.php | x |   |   |   | ORelio |  
GBAtempBridge.php |   | x |   |   | ORelio |  
GelbooruBridge.php |   | x |   |   | mitsukarenai |  
GenshinImpactBridge.php | x |   |   |   | corenting | Possible updates: remove iframe code
GiphyBridge.php |   | x |   |   | kraoc |  
GiteaBridge.php | x |   |   |   | logmanoriginal |  
GitHubGistBridge.php |   | x |   |   | logmanoriginal |  
GithubIssueBridge.php | x |   |   |   | Pierre Mazière |  
GithubPullRequestBridge.php | x |   |   |   | Yaman Qalieh |  
GithubSearchBridge.php | x |   |   |   | corenting |  
GithubTrendingBridge.php | x |   |   |   | liamka |  
GizmodoBridge.php | x |   |   |   | polopollo |  
GlassdoorBridge.php |   | x |   |   | logmanoriginal |  
GlowficBridge.php | x |   |   |   | l1n |  
GoComicsBridge.php | x |   |   |   | sky |  
GOGBridge.php |   |   | x |   | teromene | It returns the articles in alphabetical, not timely order. Basically useless
GogsBridge.php | x |   |   |   | logmanoriginal |  
GoogleSearchBridge.php | x |   |   |   | sebsauvage |  
GQMagazineBridge.php |   | x |   |   | Riduidel | Retrieves articles but content is broken. Also requires actual URL input. Needs overhaul
GrandComicsDatabaseBridge.php | x |   |   |   | corenting |  
HackerNewsUserThreadsBridge.php | x |   |   |   | rakoo |  
HardwareInfoBridge.php | x |   |   |   | t0stiman |  
HaveIBeenPwnedBridge.php | x |   |   |   | VerifiedJoseph |  
HDWallpapersBridge.php | x |   |   |   | nel50n | Title Link should go to the overview page, not directly to the image
HeiseBridge.php | x |   |   |   | Dreckiger-Dan |  
HentaiHavenBridge.php |   | x |   |   | albirew | site dead
HotUKDealsBridge.php | x |   |   |   | sysadminstory |  
IdenticaBridge.php |   |   |   | x | mitsukarenai | Site stopped taking registrations in 2013. Really needed?
IGNBridge.php |   | x |   |   | IceWreck |  
IKWYDBridge.php | x |   |   |   | DevonHess |  
IndeedBridge.php |   | x |   |   | logmanoriginal | Cant get it to work.
IndiegogoBridge.php | x |   |   |   | bockiii |  
InstagramBridge.php |   | x |   |   | pauder |  
InstructablesBridge.php | x |   |   |   | logmanoriginal |  
InternetArchiveBridge.php | x |   |   |   | VerifiedJoseph |  
IPBBridge.php |   | x |   |   | logmanoriginal |  
ItchioBridge.php | x |   |   |   | jacquesh | Works but I dont get what this is supposed to solve. It's only text, no links, no details about the product.
IvooxBridge.php | x |   |   |   | xurxof |  
JapanExpoBridge.php | x |   |   |   | Ginko |  
JustETFBridge.php |   | x |   |   | logmanoriginal | only news without full article works. Everything else is broken
KernelBugTrackerBridge.php | x |   |   |   | logmanoriginal |  
KonachanBridge.php | x |   |   |   | mitsukarenai |  
KoreusBridge.php |   |   | x |   | pit-fgfjiudghdf | Retrieval works but formatting is very bad
KununuBridge.php |   | x |   |   | logmanoriginal |  
LaCentraleBridge.php |   | x |   |   | jacknumber | site dead
LeBonCoinBridge.php |   | x |   |   | jacknumber |  
LegifranceJOBridge.php |   | x |   |   | Pierre Mazière |  
LeMondeInformatiqueBridge.php | x |   |   |   | ORelio |  
LesJoiesDuCodeBridge.php |   |   | x |   | superbaillot.net | Image and gif loading behavior varies. HTML, the images dont load, using freshrss, the gifs dont load
LichessBridge.php |   | x |   |   | AmauryCarrade |  
LinkedInCompanyBridge.php |   | x |   |   | regisenguehard |  
ListverseBridge.php | x |   |   |   | IceWreck |  
LolibooruBridge.php | x |   |   |   | mitsukarenai | Possible update: Actually add tags to the tags. Copy from derpibooru
LWNprevBridge.php |   | x |   |   | Pierre Mazière |  
MallTvBridge.php | x |   |   |   | kolarcz |  
MangareaderBridge.php |   | x |   |   | logmanoriginal | site dead
MarktplaatsBridge.php | x |   |   |   |   |  
MastodonBridge.php | x |   |   |   | husim0 |  
MediapartBlogsBridge.php | x |   |   |   | somini | Possible update: retrieve full article instead of just the headline
MediapartBridge.php | x |   |   |   | killruana |  
MilbooruBridge.php | x |   |   |   | mitsukarenai | 250 posts, last post 2014… do we need this bridge?
MixCloudBridge.php |   | x |   |   | Alexis CHEMEL |  
ModelKarteiBridge.php |   | x |   |   | fulmeek |  
MoebooruBridge.php |   | x |   |   | pmaziere | site dead
MoinMoinBridge.php | x |   |   |   | logmanoriginal |  
MondeDiploBridge.php | x |   |   |   | Pitchoule |  
MozillaBugTrackerBridge.php | x |   |   |   | AntoineTurmel |  
MozillaSecurityBridge.php | x |   |   |   | m0le.net |  
MsnMondeBridge.php |   | x |   |   | kranack |  
MspabooruBridge.php | x |   |   |   | mitsukarenai | Possible update: Actually add tags to the tags. Copy from derpibooru
MydealsBridge.php | x |   |   |   | sysadminstory |  
N26Bridge.php |   | x |   |   | quentinus95 | Looks like the blog moved
NasaApodBridge.php | x |   |   |   | corenting |  
NationalGeographicBridge.php |   | x |   |   | logmanoriginal |  
NeuviemeArtBridge.php | x |   |   |   | ORelio |  
NewOnNetflixBridge.php | x |   |   |   | jdesgats | Why do we have two bridges that do the same? Opinion: remove this, keep unogs
NextgovBridge.php |   |   | x |   | ORelio | Not working: Cloud, Mobile, Health, Defense, big data
NextInpactBridge.php | x |   |   |   | qwertygc and ORelio | Possible update: Limit the number of articles
NFLRUSBridge.php |   | x |   |   | Maxim Shpak |  
NiceMatinBridge.php | x |   |   |   | pit-fgfjiudghdf | Possible update: Formatting isnt great
NikonDownloadCenterBridge.php | x |   |   |   | sal0max |  
NineGagBridge.php | x |   |   |   | ZeNairolf |  
NordbayernBridge.php |   | x |   |   | schabi.org |  
NotAlwaysBridge.php | x |   |   |   | mozes | Possible update: Remove social links and other junk
NovelUpdatesBridge.php |   | x |   |   | albirew |  
NyaaTorrentsBridge.php | x |   |   |   | ORelio |  
NYTBridge.php | x |   |   |   | IceWreck |  
OneFortuneADayBridge.php | x |   |   |   | fulmeek |  
OnVaSortirBridge.php | x |   |   |   | AntoineTurmel |  
OpenClassroomsBridge.php |   | x |   |   | sebsauvage |  
OpenlyBridge.php | x |   |   |   | VerifiedJoseph |  
OpenwhydBridge.php | x |   |   |   | kranack |  
OpenwrtSecurityBridge.php | x |   |   |   | mschwld |  
OsmAndBlogBridge.php | x |   |   |   | fulmeek |  
OtrkeyFinderBridge.php | x |   |   |   | mibe |  
ParuVenduImmoBridge.php |   | x |   |   | polo2ro |  
PatreonBridge.php | x |   |   |   | Roliga |  
PcGamerBridge.php |   |   | x |   | IceWreck, mdemoss | Using old url
PhoronixBridge.php | x |   |   |   | IceWreck |  
PickyWallpapersBridge.php |   | x |   |   | nel50n |  
PicukiBridge.php |   |   | x |   | marcus-at-localhost | Doesnt retrieve any images. Bad for an instagram-piggybacker
PikabuBridge.php | x |   |   |   | em92 |  
PinterestBridge.php | x |   |   |   | pauder |  
PirateCommunityBridge.php | x |   |   |   | Roliga |  
PixivBridge.php | x |   |   |   | Yaman Qalieh |  
PlantUMLReleasesBridge.php | x |   |   |   | Riduidel |  
PokemonTVBridge.php | x |   |   |   | Bockiii |  
PornhubBridge.php | x |   |   |   | Mitsukarenai | No content at all except for the Title link? Possible updates: Tags, preview images, description.. Some love
PresidenciaPTBridge.php | x |   |   |   | somini |  
QPlayBridge.php |   | x |   |   | somini | site dead?
RaceDepartmentBridge.php | x |   |   |   | t0stiman |  
RadioMelodieBridge.php | x |   |   |   | sysadminstory | Possible update: Get rid of all iframes
RainbowSixSiegeBridge.php | x |   |   |   | corenting |  
RedditBridge.php | x |   |   |   | dawidsowa |  
Releases3DSBridge.php | x |   |   |   | ORelio |  
ReleasesSwitchBridge.php | x |   |   |   |   |  
ReporterreBridge.php | x |   |   |   | nyutag | Possible update: Add more metadata and content
ReutersBridge.php | x |   |   |   | hollowleviathan, spraynard, csisoap |  
RoadAndTrackBridge.php |   | x |   |   | teromene |  
RobinhoodSnacksBridge.php |   | x |   |   | johnpc |  
RoosterTeethBridge.php | x |   |   |   | tgkenney |  
RTBFBridge.php |   | x |   |   | Frenzie |  
Rue89Bridge.php |   | x |   |   | teromene | Retrieves 2 articles from 2018 even though there are newer
Rule34Bridge.php | x |   |   |   | mitsukarenai | Possible update: Actually add tags to the tags. Copy from derpibooru
Rule34pahealBridge.php | x |   |   |   | mitsukarenai | Possible update: Actually add tags to the tags. Copy from derpibooru
SafebooruBridge.php | x |   |   |   | mitsukarenai | Possible update: Actually add tags to the tags. Copy from derpibooru
ScmbBridge.php | x |   |   |   | Astalaseven |  
ScoopItBridge.php | x |   |   |   | Pitchoule |  
ScribdBridge.php | x |   |   |   | VerifiedJoseph |  
SensCritiqueBridge.php | x |   |   |   | kranack | Possible update: More content
SeznamZpravyBridge.php |   | x |   |   | thezeroalpha |  
ShanaprojectBridge.php | x |   |   |   | logmanoriginal |  
Shimmie2Bridge.php |   | x |   |   |   |  
SIMARBridge.php | x |   |   |   | somini |  
SkimfeedBridge.php | x |   |   |   | logmanoriginal |  
SoundcloudBridge.php | x |   |   |   | kranack, Roliga |  
SplCenterBridge.php | x |   |   |   | VerifiedJoseph |  
SpottschauBridge.php | x |   |   |   | sal0max |  
SteamBridge.php |   | x |   |   | jacknumber |  
SteamCommunityBridge.php | x |   |   |   | thefranke |  
StockFilingsBridge.php |   | x |   |   | captn3m0 |  
StripeAPIChangeLogBridge.php | x |   |   |   | Pierre Mazière |  
SuperSmashBlogBridge.php | x |   |   |   | corenting |  
SupInfoBridge.php |   | x |   |   | teromene |  
SymfonyCastsBridge.php |   |   | x |   | Park0 | Possible updates: The feed shows almost no content. Rework
TagBoardBridge.php |   | x |   |   | Pitchoule |  
TbibBridge.php | x |   |   |   | mitsukarenai | Possible update: Actually add tags to the tags. Copy from derpibooru
TebeoBridge.php | x |   |   |   | Mitsukarenai |  
TelegramBridge.php | x |   |   |   | VerifiedJoseph |  
TheCodingLoveBridge.php | x |   |   |   | superbaillot.net |  
TheFarSideBridge.php | x |   |   |   | VerifiedJoseph |  
TheGuardianBridge.php | x |   |   |   | IceWreck | Possible update: More content: currently only a one liner description is part of the article
TheHackerNewsBridge.php | x |   |   |   | ORelio |  
ThePirateBayBridge.php |   | x |   |   | mitsukarenai |  
TheTVDBBridge.php |   | x |   |   | Astyan |  
TheWhiteboardBridge.php | x |   |   |   | CyberJacob |  
TheYeteeBridge.php | x |   |   |   | Monsieur Poutounours |  
ThingiverseBridge.php |   | x |   |   | AntoineTurmel |  
TinyLetterBridge.php | x |   |   |   | somini |  
TorrentGalaxyBridge.php | x |   |   |   | GregThib |  
TrelloBridge.php | x |   |   |   | Roliga |  
TwitchBridge.php |   |   |   |   | Roliga |  
TwitScoopBridge.php | x |   |   |   | VerifiedJoseph |  
TwitterBridge.php | x |   |   |   | pmaziere |  
UnogsBridge.php | x |   |   |   | csisoap |  
UnraidCommunityApplicationsBridge.php | x |   |   |   | Paroleen |  
UnsplashBridge.php | x |   |   |   | nel50n |  
UrlebirdBridge.php | x |   |   |   | dotter-ak |  
UsbekEtRicaBridge.php |   | x |   |   | logmanoriginal |  
VarietyBridge.php | x |   |   |   | IceWreck | Possible update: More content. Nothing but the Title right now
ViadeoCompanyBridge.php |   | x |   |   | regisenguehard | URL changed
ViceBridge.php | x |   |   |   | IceWreck | Possible update: More content. Nothing but the Title right now
VieDeMerdeBridge.php | x |   |   |   | floviolleau |  
VimeoBridge.php | x |   |   |   | logmanoriginal |  
VkBridge.php | x |   |   |   | em92 |  
WallmineNewsBridge.php | x |   |   |   | VerifiedJoseph |  
WallpaperflareBridge.php | x |   |   |   | dhuschde |  
WallpaperStopBridge.php |   | x |   |   | nel50n |  
WebfailBridge.php | x |   |   |   | logmanoriginal |  
WeLiveSecurityBridge.php | x |   |   |   | ORelio |  
WikiLeaksBridge.php | x |   |   |   | logmanoriginal | Wikileaks has stopped updating news or anything else since 2018. Remove?
WikipediaBridge.php | x |   |   |   | logmanoriginal |  
WiredBridge.php | x |   |   |   | ORelio | Possible updates: Remove social junk, limit number of articles
WordPressBridge.php | x |   |   |   |   |  
WordPressPluginUpdateBridge.php |   | x |   |   | teromene |  
WorldCosplayBridge.php |   |   | x |   | AxorPL | "Cosplayer" returns articles without content or titles
WorldOfTanksBridge.php | x |   |   |   | Riduidel | Formatting is disgusting. Rework the content and reformat
WosckerBridge.php |   | x |   |   | VerifiedJoseph |  
XbooruBridge.php | x |   |   |   | mitsukarenai | Possible update: Actually add tags to the tags. Copy from derpibooru
XenForoBridge.php | x |   |   |   | logmanoriginal |  
XPathBridge.php | x |   |   |   | Niehztog |  
YahtzeeDevDiaryBridge.php |   | x |   |   | somini |  
YandereBridge.php | x |   |   |   | mitsukarenai | Possible update: Actually add tags to the tags. Copy from derpibooru
YeggiBridge.php | x |   |   |   | AntoineTurmel |  
YGGTorrentBridge.php | x |   |   |   | teromene |  
YoutubeBridge.php | x |   |   |   | em92 |  
ZDNetBridge.php | x |   |   |   | ORelio |  
ZenodoBridge.php |   | x |   |   | theradialactive |  
ZoneTelechargementBridge.php |   | x |   |   | sysadminstory | URL changed

GoComics Bridge returned error 0

by: julmud

Labels: Bug-Report

**Describe the bug**
When loading a feed from GoComics using the GoComicsBridge, an error occurs instead of the RSS feed being successfully generated.

```
Details
Type: Error
Code: 0
Message: Call to a member function find() on null
File: bridges/GoComicsBridge.php
Line: 26
Trace
#0 index.php(68): RssBridge->main()
#1 lib/RssBridge.php(39): RssBridge->{closure}()
#2 lib/RssBridge.php(37): CacheMiddleware->__invoke()
#3 middlewares/CacheMiddleware.php(44): RssBridge->{closure}()
#4 lib/RssBridge.php(37): ExceptionMiddleware->__invoke()
#5 middlewares/ExceptionMiddleware.php(17): RssBridge->{closure}()
#6 lib/RssBridge.php(37): SecurityMiddleware->__invoke()
#7 middlewares/SecurityMiddleware.php(19): RssBridge->{closure}()
#8 lib/RssBridge.php(37): MaintenanceMiddleware->__invoke()
#9 middlewares/MaintenanceMiddleware.php(10): RssBridge->{closure}()
#10 lib/RssBridge.php(37): BasicAuthMiddleware->__invoke()
#11 middlewares/BasicAuthMiddleware.php(13): RssBridge->{closure}()
#12 lib/RssBridge.php(37): TokenAuthenticationMiddleware->__invoke()
#13 middlewares/TokenAuthenticationMiddleware.php(10): RssBridge->{closure}()
#14 lib/RssBridge.php(34): DisplayAction->__invoke()
#15 actions/DisplayAction.php(54): DisplayAction->createResponse()
#16 actions/DisplayAction.php(90): GoComicsBridge->collectData()
#17 bridges/GoComicsBridge.php(26)

Context
Query: action=display&bridge=GoComicsBridge&comicname=calvinandhobbes&format=Html
Version: 2025-01-26 (git.master.a19b63e)
OS: Linux
PHP: 8.1.31
```
Maintainer: sky

**To Reproduce**
Steps to reproduce the behavior:
1. Enable the GoComics bridge
2. Navigate to /rss-bridge and find the GoComics bridge. Expand it.
3. Enter "calvinandhobbes" as the targeted comic strip. Click "Generate RSS Feed."
4. See error

**Expected behavior**
Successful generation of RSS feed.

**Screenshots**
None. Complete stacktrace from the error in the description above.

**Desktop (please complete the following information):**
- OS: Linux
- Browser: n/a
- Version: latest version from rss-bridge's master branch, at commit a19b63e8.

[GoComicsBridge] CURLOPT_POSTFIELDS is interpreted as an undefined constant.

by: rogerdc

Labels: Bug-Report

**Describe the bug**
When loading a feed from GoComics using the GoComicsBridge, an error occurs instead of the RSS feed being successfully generated.

```
Error: Undefined constant "CURLOPT_POSTFIELDS" in lib/contents.php line 43

index.php(68): RssBridge->main()
lib/RssBridge.php(39): RssBridge->{closure}()
lib/RssBridge.php(37): CacheMiddleware->__invoke()
middlewares/CacheMiddleware.php(44): RssBridge->{closure}()
lib/RssBridge.php(37): ExceptionMiddleware->__invoke()
middlewares/ExceptionMiddleware.php(17): RssBridge->{closure}()
lib/RssBridge.php(37): SecurityMiddleware->__invoke()
middlewares/SecurityMiddleware.php(19): RssBridge->{closure}()
lib/RssBridge.php(37): MaintenanceMiddleware->__invoke()
middlewares/MaintenanceMiddleware.php(10): RssBridge->{closure}()
lib/RssBridge.php(37): BasicAuthMiddleware->__invoke()
middlewares/BasicAuthMiddleware.php(13): RssBridge->{closure}()
lib/RssBridge.php(37): TokenAuthenticationMiddleware->__invoke()
middlewares/TokenAuthenticationMiddleware.php(10): RssBridge->{closure}()
lib/RssBridge.php(34): DisplayAction->__invoke()
actions/DisplayAction.php(54): DisplayAction->createResponse()
actions/DisplayAction.php(89): GoComicsBridge->collectData()
bridges/GoComicsBridge.php(21): getSimpleHTMLDOM()
lib/contents.php(163): getContents()
lib/contents.php(43)

Query string: action=display&bridge=GoComicsBridge&comicname=calvinandhobbes&format=Html
Version: 2025-01-26 (git.master.b52f015)
Os: Linux
PHP version: 8.3.17
```
Maintainer: @sky

**To Reproduce**
Steps to reproduce the behavior:
1. Enable the GoComics bridge
2. Navigate to /rss-bridge and find the GoComics bridge. Expand it.
3. Enter "calvinandhobbes" as the targeted comic strip. Click "Generate RSS Feed."
4. See error

**Expected behavior**
Successful generation of RSS feed.

**Screenshots**
None, but see error message above.

**Server:**
- OS: Debian Bookworm, Kernel 6.1.128-1
- PHP version - See attached screenshot of phpinfo() output. Version 8.3.17

![Image](https://github.com/user-attachments/assets/802b3f68-ff47-4972-9a13-4599bb69a45a)

Add RSS Bridge to Cloudflare Verified Bots?

by: 0ct00

When using RSS Bridge a lot of time I get a 403 error from Cloudflare.

Maybe to mitigate this you could try to have RSS Bridge be added to the **Cloudflare Verified Bots** in the category "Feed Fetcher".

https://radar.cloudflare.com/traffic/verified-bots

I'm not sure how this would apply to different instances though.

Imgsed Bridge can't find anything

by: adegans

Happy to find a instagram crawler... But, it doesn't work.
I've tried several accounts, all come back with this error.

If I search the same account on imginn it works fine.
I've tried drdemolitionmatt, arnandegans, svetabily, annakendrick47, WHISTLINDIESEL

```
Exception: Unable to find user `arnandegans` in bridges/ImgsedBridge.php line 65

index.php(11): RssBridge->main()
lib/RssBridge.php(113): DisplayAction->execute()
actions/DisplayAction.php(71): DisplayAction->createResponse()
actions/DisplayAction.php(106): ImgsedBridge->collectData()
bridges/ImgsedBridge.php(65)

Query string: action=display&bridge=ImgsedBridge&context=Username&u=arnandegans&post=on&story=on&format=Html
Version: 2023-09-24
Os: Linux
PHP version: 8.1.25
```

And on a sidenote, in Safari/macOS the username field is treated as a log in field, so login autofill keeps popping up to put a username in there. Tiny issue, but frustrating none the less.

Support base URI

by: mrnoname1000

Labels: Feature-Request

**Is your feature request related to a problem? Please describe.**
I want to serve multiple applications from a single hostname, i.e. `http://localhost/rss-bridge`. However, when I serve RSS-Bridge this way, none of the static resources load.

**Describe the solution you'd like**
A config setting for url prefix, e.g.
```toml
[system]
base_uri = "http://localhost/rss-bridge"
```
Adding `<base href="http://localhost/rss-bridge/"/>` before the resources are loaded fixes the problem in my case, so a function to compose that from the config setting would probably be the way to go.

Pornhub Bridge - Missing Thumbnails

by: Dean-Corso

Labels: Bug-Report

**Describe the bug**
Pornhub Bridge doesn't show any images when I have enabled the option "Show Thumbnails". Also this bridge does create duplicate posts in my RSS reader app everyday.

**Example Bridge URL**
[model/roseredgoddess](https://rss-bridge.org/bridge01/?action=display&bridge=PornhubBridge&q=roseredgoddess&type=model&sort=%3F&show_images=on&format=Html)

I was trying to create a custom bridge using the "CSS Selector Bridge" and with this I can get also a image but the title is showing the duration time. Below a example I made...

[CSS Selector Bridge of roseredgoddess](https://rss-bridge.org/bridge01/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fpornhub.com%2Fmodel%2Froseredgoddess%2Fvideos%2F&url_selector=.profileVids+%3E+*+.flexibleHeight&url_pattern=&content_selector=&content_cleanup=.display-none.add-to-playlist-icon%2C+.videoDetailsBlock&title_cleanup=&limit=6&format=Html)

...now if you click on my own made bridge you get to see it with an image but the problem is that the title is showing the duration time instead of the title. I would like to have the title element on top as title. There is showing the .itemtitle class = duration time on top and the .title class below at bottom. Is there a way to change that? Don't wanna see the duration time as title you know. Thanks.

9GAG - Trending failed with error 403

by: mbnoimi

```
Uncaught Exception HttpException: 403 Forbidden at lib/contents.php line 132

#0 index.php:35
#1 actions/DisplayAction.php:134
#2 bridges/NineGagBridge.php:144
#3 lib/contents.php:132

Query string:action=display&bridge=NineGagBridge&context=Popular&d=trending&video=none&p=5&format=Html
Version:git.master.372eccd
Os:Linux
PHP version:7.4.3
```

- YouTube failed with error 403 (can our server's IP be blocked?)

by: tio-trom

Error message: `Unexpected response from upstream.
cUrl error: (0)
PHP error: `
Query string: `action=display&bridge=Youtube&context=By+username&u=physicswoman&duration_min=&duration_max=&format=Mrss`
Version: `dev.2021-04-25`

This is our instance https://rss.trom.tf/ - it used to work like a charm for months. We did no change, and suddenly no youtube account works.

A friend has the same rss bridge version at https://rss.alexio.tf/ and it works on that instance.

That leads me to think that our server got banned by youtube. Is that possible?

getSimpleHTMLDOM returns json instead of html

by: DeepReef11

I've also tried using the following:

```
$headers = [
'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1',
]
$dom= getSimpleHTMLDOMCached($url, 86400, $headers);
```

Should I parse the json instead? Made my whole logic based on the html.

After pulling new Docker image, "YouTube failed with error 500"

by: ieure

I pulled a new rssbridge Docker image today, and my YouTube playlist feeds broke. I'm not sure what's wrong, since it looks like that code hasn't changed in a long time.

This is the image I'm using now (`latest`) and the one I was running before.

```
rssbridge/rss-bridge latest sha256:9aa69c80004036a6cd0f42c852665bec5866304b1b7244eac619e036e48ac87f 17 hours ago 485MB
rssbridge/rss-bridge <none> sha256:e84413d76465391cf6f2b07e4e7e6ea9385d89ebf748ff728a7c4dde6a25788e 2 months ago 544MB
```

```
Exception: Could not find videoSecondaryInfoRenderer. Error at: DbFvOHei_P0 in lib/error.php line 26

index.php(7): RssBridge->main()
lib/RssBridge.php(15): RssBridge->run()
lib/RssBridge.php(92): DisplayAction->execute()
actions/DisplayAction.php(133): YoutubeBridge->collectData()
bridges/YoutubeBridge.php(377): YoutubeBridge->parseJSONListing()
bridges/YoutubeBridge.php(305): YoutubeBridge->ytBridgeQueryVideoInfo()
bridges/YoutubeBridge.php(112): returnServerError()
lib/error.php(46): returnError()
lib/error.php(26)

Query string: action=display&bridge=YoutubeBridge&context=By+playlist+Id&p=PLJaq64dKJZoqsh7PGGUi-SARV4wUz_lVa&duration_min=&duration_max=&format=Html
Version: dev.2022-06-14 (git.master.1ffb2df)
Os: Linux
PHP version: 8.0.27
```

Upgrade to PHP8

by: captn3m0

Labels: Feature-Request

**Is your feature request related to a problem? Please describe.**
The current docker images use PHP7.4, which isn't [supported anymore](https://endoflife.date/php).

**Describe the solution you'd like**
We should upgrade to 8.0.

**Describe alternatives you've considered**
None

**Additional context**
There only seems to be one failing testcase: https://github.com/RSS-Bridge/rss-bridge/issues/2704. We're already on PHPUnit 9, so it shouldn't be too hard, since that should support PHP8+ already.

Question on Filter bridge on how to add multiple words to filter out?

by: 99powerbreaker

![image](https://user-images.githubusercontent.com/99379078/211055104-f596588c-2597-466f-bfad-29c50247a55b.png)
I didn't see anywhere how to add multiple filters on the filter bridge.
Would you need commas? (Ex. rude, mean) Would you need spaces in between each word? Or leave no space? (Ex. rude,mean)
Is there a way to filter only a specific phrase of words such as "White Whale" would putting in two entries delete any instance where it mentions white or whale. or does it delete only white because its in front. Or would this only delete every instance of white and whale together?

Instagram Bridge failed with error 0

by: Tokariew

Second day when i get following error when trying to fetch data from instagram
in `config.ini.php` i have only configured `session_id` and `cache_timeout` set to 18h.
Running it on my private, and local instance with podman/docker

```
Error message: `Maximum (5) redirects followed (47)`
Query string: `action=display&bridge=Instagram&context=Username&u=tokariew&media_type=all&format=Html`
Version: `git.master.2c7a9d7`
```

It seems that removing `session_id` help to receive data… but then i can't follow private accounts.

Twitter search failed with error 403

by: stevenirby

Error message: `Unexpected response from upstream.
cUrl error: (0)
PHP error: `
Query string: `action=display&bridge=Twitter&context=By+keyword+or+hashtag&format=Json&q=<some string here>`
Version: `dev.2021-04-25`

I recently upgraded rss-bridge with the latest version I'm getting a ton of exceptions now.

Community tab - YouTube

by: smnthermes

Labels: Feature-Request

**Is your feature request related to a problem? Please describe.**
YouTube doesn't have RSS feed for posts in the community tab.

**Describe the solution you'd like**
I'd like a feature for the YT bridge providing that.

**Describe alternatives you've considered**
None.

**Additional context**
Example: https://www.youtube.com/channel/UCmArkwjUI8VRHudOjEsVCUw/community

Telegram Bridge failed with error 502 — how can I not get error data that does not require my reaction?

by: vvzvlad

Error message: `Unexpected response from upstream`
Query string: `action=display&bridge=Telegram&format=Mrss&username=nikitonsky_pub`
Version: `dev.2022-01-20`

I keep getting errors in the RSS feed about getting data. As far as I can see, despite these errors, the TG feed is delivered normally, with no gaps or duplicate posts. Thus, the errors simply indicate the temporary unavailability of the service, and when it is restored, everything starts working normally. This means that these errors do not require any response from the user. How can I turn off these errors, as they prevent the bridge from being used as intended, cluttering up the feed?

BukowskisBridge.php, GiphyBridge.php and ThePirateBayBridge.php are marked executable

by: josch

Labels: Bug-Report

This is the same as #938 and #561 but this time for BukowskisBridge.php, GiphyBridge.php and ThePirateBayBridge.php.

None of these files should be marked as executable.

Clicking atom feed opens index of project

by: nikhilCad

Labels: Bug-Report

**Describe the bug**
I installed it, went to instagram bridge to get posts of "natgeo", the feeds show but atom file is not loaded(see screenshot). The same happens in other bridges also.

**To Reproduce**
Steps to reproduce the behavior:
1. Install termux and php7-apache module
2. Use bridge

**Expected behavior**
Atom feed loads

**Screenshots**
![Screenshot_20220213-214646](https://user-images.githubusercontent.com/47214394/153762211-3d0ce7cd-cf91-414e-9d8e-a3147068c0f5.png)
The items show here fine
![Screenshot_20220213-214446](https://user-images.githubusercontent.com/47214394/153762235-8d987fe8-856d-47ef-85cb-a5cbaa5287fa.png)
But clicking on atom loads this

**Smartphone (please complete the following information):**
- Device: Moto E7 powee
- OS: Android 10
- Browser Chrome
- Version 95

**Additional context**
None

XML not well-formed bridge Leboncoin

by: Skealz

Labels: Bug-Report

**Describe the bug**
When I try to read the XML produced by the LeBonCoin bridge I've got this error (through firefox)

XML Parsing Error: not well-formed
Location: file:///tmp/mozilla_user0/dn6siIHE
Line Number 239, Column 11:Loyer 1300€ - Dépôt de garantie 1300€

The culprit seems to be this character :  , just after "1300"

**To Reproduce**
Steps to reproduce the behavior:
The URL parameters were
?action=display&bridge=LeBonCoin&keywords=&region=&department=29&cities=&category=10&pricemin=&pricemax=&estate=1&roomsmin=&roomsmax=&squaremin=100&squaremax=300&mileagemin=&mileagemax=&yearmin=&yearmax=&cubiccapacitymin=&cubiccapacitymax=&fuel=&owner=&format=Mrss

**Expected behavior**
The browser should be able to read the XML file.

Temporary solution that I did for me :

Modify
formats/MrssFormat.php

add this function (found here https://www.ryadel.com/en/php-skip-invalid-characters-utf-8-xml-file-string/ ):

```
* Removes invalid characters from a UTF-8 XML string
*
* @access public
* @param string a XML string potentially containing invalid characters
* @return string
*/
function sanitizeXML($string)
{
if (!empty($string))
{
// remove EOT+NOREP+EOX|EOT+<char> sequence (FatturaPA)
$string = preg_replace('/(\x{0004}(?:\x{201A}|\x{FFFD})(?:\x{0003}|\x{0004}).)/u', '', $string);

$regex = '/(
[\xC0-\xC1] # Invalid UTF-8 Bytes
| [\xF5-\xFF] # Invalid UTF-8 Bytes
| \xE0[\x80-\x9F] # Overlong encoding of prior code point
| \xF0[\x80-\x8F] # Overlong encoding of prior code point
| [\xC2-\xDF](?![\x80-\xBF]) # Invalid UTF-8 Sequence Start
| [\xE0-\xEF](?![\x80-\xBF]{2}) # Invalid UTF-8 Sequence Start
| [\xF0-\xF4](?![\x80-\xBF]{3}) # Invalid UTF-8 Sequence Start
| (?<=[\x0-\x7F\xF5-\xFF])[\x80-\xBF] # Invalid UTF-8 Sequence Middle
| (?<![\xC2-\xDF]|[\xE0-\xEF]|[\xE0-\xEF][\x80-\xBF]|[\xF0-\xF4]|[\xF0-\xF4][\x80-\xBF]|[\xF0-\xF4][\x80-\xBF]{2})[\x80-\xBF] # Overlong Sequence
| (?<=[\xE0-\xEF])[\x80-\xBF](?![\x80-\xBF]) # Short 3 byte sequence
| (?<=[\xF0-\xF4])[\x80-\xBF](?![\x80-\xBF]{2}) # Short 4 byte sequence
| (?<=[\xF0-\xF4][\x80-\xBF])[\x80-\xBF](?![\x80-\xBF]) # Short 4 byte sequence (2)
)/x';
$string = preg_replace($regex, '', $string);

$result = "";
$current;
$length = strlen($string);
for ($i=0; $i < $length; $i++)
{
$current = ord($string{$i});
if (($current == 0x9) ||
($current == 0xA) ||
($current == 0xD) ||
(($current >= 0x20) && ($current <= 0xD7FF)) ||
(($current >= 0xE000) && ($current <= 0xFFFD)) ||
(($current >= 0x10000) && ($current <= 0x10FFFF)))
{
$result .= chr($current);
}
else
{
$ret; // use this to strip invalid character(s)
// $ret .= " "; // use this to replace them with spaces
}
}
$string = $result;
}
return $string;
}
```

and then, modify the function stringify, at the end, (in the same file) to have :

```
// Remove invalid non-UTF8 characters
ini_set('mbstring.substitute_character', 'none');
$toReturn = mb_convert_encoding($toReturn, $this->getCharset(), 'UTF-8');
$toReturn = sanitizeXML($toReturn);
return $toReturn;
```




Replace simplehtmldom

by: Bockiii

Labels: TODO

Grouping-Issue for all things simplehtmldom

Bridge Request for bdsmlr.com

by: fuxxfoxx

Labels: Bridge-Request

# Bridge request

## General information

Hello. I want use bdsmlr.com for use in RSS reader. Bdsmlr.com does not provide a RSS feed. It is a website similar to tumblr. Tumblr is banning most blogs with NSFW content beginning 17.12.2018. People move to bdsmlr.com.
For sure this bridge would make lot people happy.

- _Host URI for the bridge_ (i.e. `https://github.com`):
bdsmlr.com

- Which information would you like to see?
New articles. As in tumblr.


- How should the information be displayed/formatted?
RSS feed.


- Which of the following parameters do you expect?

- [X] Title
- [X] URI (link to the original article)
- [ ] Author
- [ ] Timestamp
- [X] Content (the content of the article)
- [X] Enclosures (pictures, videos, etc...)
- [ ] Categories (categories, tags, etc...)

## Options

<!--Select options from the list below. Add your own option if one is missing:-->

- [ ] Limit number of returned items
- _Default limit_: 5
- [ ] Load full articles
- _Cache articles_ (articles are stored in a local cache on first request): yes
- _Cache timeout_ (max = 24 hours): 24 hours
- [ ] Balance requests (RSS-Bridge uses cached versions to reduce bandwith usage)
- _Timeout_ (default = 5 minutes, max = 24 hours): 5 minutes

<!--Be aware that some options might not be available for your specific request due to technical limitations!-->

<!--
## Additional notes

Keep in mind that opening a request does not guarantee the bridge being implemented! That depends entirely on the interest and time of others to make the bridge for you.

You can also implement your own bridge (with support of the community if needed). Find more information in the [RSS-Bridge Wiki](https://github.com/RSS-Bridge/rss-bridge/wiki/For-developers) developer section.
-->

milkmochabear - Instagram Bridge failed with error 403

by: damn-simple-scripts

Labels: Inherited-Issue

Error message: `The requested resource cannot be found!
Please make sure your input parameters are correct!
cUrl error: (0)
PHP error: `
Query string: `action=display&bridge=Instagram&context=Username&u=milkmochabear&media_type=all&direct_links=on&format=Atom`
Version: `git.master.b0884e9`

From Nginx error-Log:
```
2019/11/02 18:17:04 [error] 26252#26252: *1296164 FastCGI sent in stderr: "PHP message: Exception: The requested resource cannot be found!
Please make sure your input parameters are correct!
cUrl error: (0)
PHP error: in /var/www/rss-bridge/lib/error.php:24
Stack trace:
#0 /var/www/rss-bridge/lib/contents.php(205): returnError('The requested r...', 403)
#1 /var/www/rss-bridge/bridges/InstagramBridge.php(207): getContents('https://www.ins...')
#2 /var/www/rss-bridge/bridges/InstagramBridge.php(89): InstagramBridge->getInstagramJSON('https://www.ins...')
#3 /var/www/rss-bridge/actions/DisplayAction.php(125): InstagramBridge->collectData()
#4 /var/www/rss-bridge/index.php(38): DisplayAction->execute()
#5 {main}" while reading response header from upstream, client: 91.219.69.1, server: rssbridge.clemo.xelt.co, request: "GET /index.php?action=display&bridge=Instagram&context=Username&u=milkmochabear&media_type=all&format=Html HTTP/2.0", upstream: "fastcgi://unix:/run/php/php7.2-fpm.sock:", host: "rssbridge.clemo.xelt.co", referrer: "https://rssbridge.clemo.xelt.co/index.php"
```

In latest(s) docker image, all feeds show Bridge return error 0! (-14587)

by: serrnovik

Labels: Bug-Report

Running latest docker image on raspberry PI returns `Bridge returned error 0! (-14587) error`. None of feeds work. Tested on Google,Twitter, Instagram. The error is the same.

In the logs there is a possible cause:
`on: Unexpected response from upstream.\ncUrl error: Resolving timed out after 1098138760065 milliseconds (28)\nPHP error: in /app/lib/error.php:24\nStack trace:\n#0 /app/lib/contents.php(207): returnError()\n#1 /app/bridges/TwitterBridge.php(510): getContents()\n#2 /app/bridges/TwitterBridge.php(584): TwitterBridge->getApiKey()\n#3 /app/bridges/TwitterBridge.php(241): TwitterBridge->getApiContents()\n#4 /app/actions/DisplayAction.php(135): TwitterBridge->collectData()\n#5 /app/index.php(38): DisplayAction->execute()\n#6 {main}
`

**To Reproduce**
Run docker image with command:
`docker run -p 9081:80 rssbridge/rss-bridge:latest`
Go to web UI and try to access some feeds


Full log of test case
```
~/rssbridge $ docker run -p 9081:80 rssbridge/rss-bridge:latest
find: '/config/': No such file or directory
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Sun Jan 00 00:00:00.000000 1900] [mpm_prefork:notice] [pid 10] AH00163: Apache/2.4.51 (Debian) PHP/7.4.27 configured -- resuming normal operations
[Fri Mar 15 21:42:53.'''(+. 1935] [core:notice] [pid 10] AH00094: Command line: 'apache2 -D FOREGROUND'
[Thu Jan 22 06:23:52.000000 1931] [php7:notice] [pid 21] [client 192.168.3.96:49477] Exception: Unexpected response from upstream.\ncUrl error: Resolving timed out after 1098138760065 milliseconds (28)\nPHP error: in /app/lib/error.php:24\nStack trace:\n#0 /app/lib/contents.php(207): returnError()\n#1 /app/bridges/TwitterBridge.php(510): getContents()\n#2 /app/bridges/TwitterBridge.php(584): TwitterBridge->getApiKey()\n#3 /app/bridges/TwitterBridge.php(241): TwitterBridge->getApiContents()\n#4 /app/actions/DisplayAction.php(135): TwitterBridge->collectData()\n#5 /app/index.php(38): DisplayAction->execute()\n#6 {main}
192.168.3.96 - - [16/Mar/1935:04:26:57 +0000] "GET /?action=display&bridge=Twitter&context=By+keyword+or+hashtag&q=rss-bridge&format=Html HTTP/1.1" 200 1655 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
192.168.3.96 - - [16/Mar/1935:04:26:57 +0000] "GET / HTTP/1.1" 408 483 "-" "-"
192.168.3.96 - - [16/Mar/1935:04:26:57 +0000] "GET / HTTP/1.1" 200 5154 "http://192.168.3.31:9081/?action=display&bridge=Twitter&context=By+keyword+or+hashtag&q=rss-bridge&format=Html" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
192.168.3.96 - - [16/Mar/1935:04:26:57 +0000] "GET /?action=display&bridge=Twitter&context=By+keyword+or+hashtag&q=rss-bridge&format=Html HTTP/1.1" 304 226 "http://192.168.3.31:9081/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
192.168.3.96 - - [16/Mar/1935:04:26:57 +0000] "GET / HTTP/1.1" 200 5154 "http://192.168.3.31:9081/?action=display&bridge=Twitter&context=By+keyword+or+hashtag&q=rss-bridge&format=Html" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
[Thu Jan 22 06:23:52.000000 1931] [php7:notice] [pid 25] [client 192.168.3.96:49488] Exception: Unexpected response from upstream.\ncUrl error: Resolving timed out after 1098138760065 milliseconds (28)\nPHP error: in /app/lib/error.php:24\nStack trace:\n#0 /app/lib/contents.php(207): returnError()\n#1 /app/lib/contents.php(249): getContents()\n#2 /app/bridges/GoogleSearchBridge.php(28): getSimpleHTMLDOM()\n#3 /app/actions/DisplayAction.php(135): GoogleSearchBridge->collectData()\n#4 /app/index.php(38): DisplayAction->execute()\n#5 {main}, referer: http://192.168.3.31:9081/
192.168.3.96 - - [16/Mar/1935:04:26:57 +0000] "GET /?action=display&bridge=GoogleSearch&q=test&format=Html HTTP/1.1" 200 1618 "http://192.168.3.31:9081/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
```


**Screenshots**
![image](https://user-images.githubusercontent.com/326432/149756457-d1badfef-818f-4df1-9026-4db3a7cb0e65.png)

[Discussion] Statistics and reporting

by: Bockiii

Labels: Feature-Request

Hi,

I wanted to open a discussion about access statistics and reporting of rssbridge.

The current docker image uses the official php image. The official images all softlink the access and error logs to STDOUT and STDERR.

See https://github.com/docker-library/php/blob/64811791f0682262478d73514819908fcfe73d7f/Dockerfile-apache-block-1.template#L34

In order to do any kind of reporting, those softlinks would need to be broken. We could then either map the folder to the host or just keep them living while the container is running (which would provide no history for the container other than the current run). The typical thing would be to create a volume called "rssbridgelogs" or so and map it to the log folder. This volume could then be used to create statistics by applications like AWStats and the like.

So, it may add some complexity (depending on how it's implemented) but might be very handy for some people, specially those running public instances.

The images in Dribbble Bridge won’t show up in RSS reader

by: lucky13820

Labels: Bug-Report

**Describe the bug**
In the atom feed for Dribbble bridge, there are original image links. But none of the images will show up in RSS reader. I tried three different RSS reader apps on iOS. Reeder, NetNewsWire, Ego reader. They can’t display the images at all.

**To Reproduce**
Just add the atom feed of the Dribbble bridge to any rss reader app, you won’t see any images show up.

**Expected behavior**
The images for Dribbble bridge should show up in RSS reader app.

**Screenshots**
![4C84E756-C85B-45DE-89FC-67ED07B53888](https://user-images.githubusercontent.com/7293811/102101046-007b1600-3ddf-11eb-974f-c91822672fb6.png)
![0743C5DD-E170-4F50-A069-A87FC5F57BC8](https://user-images.githubusercontent.com/7293811/102101051-01ac4300-3ddf-11eb-8d72-ee1a42fbec25.png)
![341299FF-A8FF-4FD6-8A06-B02122B4B7F5](https://user-images.githubusercontent.com/7293811/102101052-01ac4300-3ddf-11eb-8701-51a1e05bee3f.png)


**Smartphone (please complete the following information):**
- Device: iPhone 12 Pro Max
- OS: iOS 14.1
- Browser: Reeder, NetNewsWire, Ego Reader
- Version: dev.2020-11-10 deployed on VPS

**Additional context**
Add any other context about the problem here.

I tried many versions of RSS Bridge none is working

by: jalalvibes

Labels: Bug-Report

I hosted your project on my website, on a custom domain, and tested many versions, none is working, I get wrong data as you see in the picture why ?
![Screenshot_20191215-125946_Chrome](https://user-images.githubusercontent.com/58884635/70863232-13e26f80-1f46-11ea-8e1e-0251b67803d9.jpg)

Bridge request for Scribd

by: rmdes

Labels: Bridge-Request

# Bridge request

<!--
This is a bridge request. Start by adding a descriptive title (i.e. `Bridge request for GitHub`). Use the "Preview" button to see a preview of your request. Make sure your request is complete before submitting!

Notice: This comment is only visible to you while you work on your request. Please do not remove any of the lines in the template (you may add your own outside the "<!--" and "- ->" lines!)
-->

## General information

<!--
Please describe what you expect from the bridge. Whenever possible provide sample links and screenshots (you can just paste them here) to express your expectations and help others understand your request. If possible, mark relevant areas in your screenshot. Use the following questions for reference:
-->

- _Host URI for the bridge_`): https://fr.scribd.com/user/489040929/number10leaks-com/uploads

- Which information would you like to see?

I would like to be able to fetch an RSS feed from last uploaded documents on any user account at Scribd.com
- Scribd used to have its own RSS feed but for some reasons none of these old instructions work today https://stackoverflow.com/questions/8245966/ways-to-get-user-activity-feed-from-scribd

- How should the information be displayed/formatted?

RSS or Atom feed

- Which of the following parameters do you expect?

- [X] Title
- [X] URI (link to the original article)
- [ ] Author
- [ ] Timestamp
- [X] Content (the content of the article)
- [X] Enclosures (pictures, videos, etc...)
- [ ] Categories (categories, tags, etc...)

## Options

<!--Select options from the list below. Add your own option if one is missing:-->

- [ ] Limit number of returned items
- _Default limit_: 20
- [ ] Load full articles
- _Cache articles_ (articles are stored in a local cache on first request): yes
- _Cache timeout_ (max = 24 hours): 24 hours
- [X] Balance requests (RSS-Bridge uses cached versions to reduce bandwith usage)
- _Timeout_ (default = 5 minutes, max = 24 hours): 5 minutes

<!--Be aware that some options might not be available for your specific request due to technical limitations!-->

<!--
## Additional notes

Keep in mind that opening a request does not guarantee the bridge being implemented! That depends entirely on the interest and time of others to make the bridge for you.

You can also implement your own bridge (with support of the community if needed). Find more information in the [RSS-Bridge Wiki](https://github.com/RSS-Bridge/rss-bridge/wiki/For-developers) developer section.
-->

EDIT: Instagram, DuckDuckGo failed with error 0

by: JonTabor

EDIT: Upon more testing, it's primarily Instagram and DuckDuckGo. Twitter seems to work. Instagram hashtag search works, but username search does not.

Host is OpenBSD 6.5. This issue cropped up after upgrading from OpenBSD 6.4; I received error 500 on every site, so I re-pulled rss-bridge from git. Now I'm getting the below error for every site. I've verified /etc/ss/cert.pem exists, and I even have pulled it into the chrooted path.

On OpenBSD 6.4, everything worked as expected.

Error message: `The requested resource cannot be found!
Please make sure your input parameters are correct!
cUrl error: error setting certificate verify locations:
CAfile: /etc/ssl/cert.pem
CApath: none (77)
PHP error: `
Query string: `action=display&bridge=DuckDuckGo&u=test&sort=%2Bsort%3Adate&format=Atom`
Version: `git.master.33c16f8`

Media RSS does not contain media:content tags

by: lufinkey

Labels: Code-Refactoring

Because of this, I can't use the feeds with tools like "variety"

It also seems like it does not contain a lot of the "standard" media rss fields, like media:title, media:thumbnails, etc ([a full list here](http://www.rssboard.org/media-rss))

php-urljoin shows warnings

by: em92

```
Warning: array_merge(): Argument #2 is not an array in /var/www/rss-bridge/dev/vendor/php-urljoin/src/urljoin.php on line 39

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/rss-bridge/dev/vendor/php-urljoin/src/urljoin.php on line 44

Warning: array_key_exists() expects parameter 2 to be array, null given in /var/www/rss-bridge/dev/vendor/php-urljoin/src/urljoin.php on line 60

Warning: array_merge(): Argument #2 is not an array in /var/www/rss-bridge/dev/vendor/php-urljoin/src/urljoin.php on line 39

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/rss-bridge/dev/vendor/php-urljoin/src/urljoin.php on line 44

Warning: array_key_exists() expects parameter 2 to be array, null given in /var/www/rss-bridge/dev/vendor/php-urljoin/src/urljoin.php on line 60
```

Reproduction: https://feed.eugenemolotov.ru/dev/?action=display&bridge=Facebook&u=klingmarcuwe&media_type=all&skip_reviews=on&format=Html

Server side caching issues

by: em92

Labels: Feature-Request

About this: https://github.com/RSS-Bridge/rss-bridge/pull/889

Why do we need to cache server responses if they do not give [Last-Modified ](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified) header? Such response will be stored, but 99% it won't be used.

If there is an intention to cache all successful responses (not matter about Last-Modified header), I guess it is better not to cache certain server response, if servers tells (via headers) not to cache it, as in typical instagram response:
```
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: private, no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Vary: Accept-Language, Cookie, Accept-Encoding
Content-Language: en
Date: Mon, 26 Nov 2018 06:53:53 GMT
Strict-Transport-Security: max-age=60
X-Frame-Options: SAMEORIGIN
content-security-policy: report-uri https://www.instagram.com/security/csp_report/; default-src 'self' https://www.instagram.com; img-src https: data: blob:; font-src https: data:; media-src 'self' blob: https://www.instagram.com https://*.cdninstagram.com https://*.fbcdn.net; manifest-src 'self' https://www.instagram.com; script-src 'self' https://instagram.com https://www.instagram.com https://*.www.instagram.com https://*.cdninstagram.com wss://www.instagram.com https://*.facebook.com https://*.fbcdn.net https://*.facebook.net 'unsafe-inline' 'unsafe-eval' blob:; style-src 'self' https://*.www.instagram.com https://www.instagram.com 'unsafe-inline'; connect-src 'self' https://instagram.com https://www.instagram.com https://*.www.instagram.com https://graph.instagram.com https://*.graph.instagram.com https://*.cdninstagram.com https://api.instagram.com wss://www.instagram.com wss://edge-chat.instagram.com https://*.facebook.com https://*.fbcdn.net https://*.facebook.net chrome-extension://boadgeojelhgndaghljhdicfkmllpafd; worker-src 'self' https://www.instagram.com; frame-src 'self' https://instagram.com https://www.instagram.com https://staticxx.facebook.com https://www.facebook.com https://web.facebook.com https://connect.facebook.net https://m.facebook.com; object-src 'none'; upgrade-insecure-requests
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Set-Cookie: urlgen="{}:1gRAmH:0VBEguS23b9TS4_ZsV3FhmoiF7g"; Domain=.instagram.com; HttpOnly; Path=/; Secure
Set-Cookie: mid=W_uYgQAEAAHsTXCdeCoHODPlpTUt; Domain=.instagram.com; expires=Thu, 23-Nov-2028 06:53:53 GMT; Max-Age=315360000; Path=/; Secure
Set-Cookie: rur=FRC; Domain=.instagram.com; HttpOnly; Path=/; Secure
Set-Cookie: mcd=3; Domain=.instagram.com; expires=Thu, 23-Nov-2028 06:53:53 GMT; Max-Age=315360000; Path=/; Secure
Set-Cookie: csrftoken=16nn98FM99NexSWTYiFQNlgkD5mdrQoQ; Domain=.instagram.com; expires=Mon, 25-Nov-2019 06:53:53 GMT; Max-Age=31449600; Path=/; Secure
Connection: keep-alive
Content-Length: 68446
```

Currently in my rss-bridge instance `cache/server`'s size is 704 Mb, while overall `cache`'s size is 777 Mb. I think we can to reduce it.

Twitter Feeds Not Updating

by: Legalien

I was so happy to set up an RSS Feed for a Twitter profile yesterday, but it only updated once in the past 10 hours.

So I downloaded and installed RSS Bridge on my own server. On Hostgator, shared hosting. I set up an RSS feed for a Twitter profile and I posted a new tweet. A few minutes later the feed was updated. Success! 👍

So I posted one more tweet and checked 8 hours later. The feed never updated again. This is an Atom feed.

So then I created an Html feed for the same Twitter profile. To my surprise, the Html feed came up with the latest tweet included. Then I also created an Mrss feed for the same Twitter profile, and it came out with the latest tweet included. Then I posted a new tweet on my Twitter account, and checked all 3 feeds again. The Atom feed never updated again, the Html feed never updated again, but the Mrss feed updated with the latest tweet after a few minutes.

Then I posted another tweet, and waited. It's been a couple of hours now and none of the feeds is updating 👎

The Atom feed is showing latest post 3 posts ago
The Html feed is showing latest post 2 posts ago
The Mrss feed is showing latest post 1 post ago
And the latest post is not updated on any of the feeds, and it's been hours.

I read through the Wiki and other people who asked, and I can't figure it out. I tried looking through this file like it was suggested somewhere: simple_html_dom.php

I looked in TwitterBridge.php, and from what I can see on Line 5 the feeds should be updating every 5 minutes - const CACHE_TIMEOUT = 300; // 5min

I don't know what else to do. You know, any time I ever needed to figure something out I would hit Google and Youtube and Forums and Q&A sites and almost always figure it out myself or ask a very specific and narrow question. But in this case I have nowhever to go but here. I hope you guys can help me figure this out.

It makes no sense, the feeds should be updating every 5 minutes (unless I'm mistaken). I am self-hosted on Hostgator, so I believe I fulfill all the requirements to run RSS Bridge properly. The RSS Feed seems to update once after a few minutes, but then it stops. Is there a limitation somewhere that allows only 1 update and I need to change something somewhere in order to allow them to be updated continuously/again?

Thanks

Facebook | Only two status

by: odessadraekavik

Labels: Bridge-Feature-Request

Hello there,

I am trying to display a Facebook page's public posts as an RSS feed but the script just retrieves
- Only the two last posts
- Page Reviews (You know... stars rating + comment)

Page I am trying to display : **EcolePolytechnique**
Parameters used : _?action=display&bridge=Facebook&u=EcolePolytechnique&media_type=all&format=Mrss_

What I get : ![https://i.imgur.com/1Er4v72.png](https://i.imgur.com/1Er4v72.png)

What I should get : The blue part (as shown in the image) only, with all the page's posts.
I think the reviews are unnecessary and should be removed.

Best regards.

cUrl SSL peer verification - Bridge returned error 0!

by: triatic

Whenever I upgrade rss-bridge, Facebook and Twitter bridges return "Bridge returned error 0!".

When enabling DEBUG the cause is apparent.

`C:\php\rss-bridge\bridges\FacebookBridge.php:512 class <no-class>->getSimpleHTMLDOM - Cant't download https://www.facebook.com/ukparliament/posts?_fb_noscript=1 cUrl error: SSL certificate problem: unable to get local issuer certificate (60)`

The solution is to add this line to lib/contents.php

`curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);`

Is there any way of handling this issue better? I can understand not wanting to put the above line into rss-bridge since it reduces the effectiveness of SSL but maybe the issue can be better communicated to the user than the usual "Bridge returned error 0!"?

Maybe add an argument to rss-bridge to toggle SSL peer verification?