• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

actions/H25-Apr-2021-508332

bridges/H25-Apr-2021-43,78336,487

cache/H25-Apr-2021-

caches/H25-Apr-2021-367257

formats/H25-Apr-2021-648483

lib/H25-Apr-2021-5,5092,351

static/H03-May-2022-516441

vendor/H25-Apr-2021-4,2223,024

README.mdH A D25-Apr-202115.6 KiB319272

UNLICENSEH A D25-Apr-20211.2 KiB2620

app.jsonH A D25-Apr-2021279 97

composer.jsonH A D25-Apr-20211.3 KiB4140

composer.lockH A D25-Apr-202151.4 KiB1,4961,495

config.default.ini.phpH A D25-Apr-20212.1 KiB8462

index.phpH A D25-Apr-20211.1 KiB4835

README.md

1![RSS-Bridge](static/logo_600px.png)
2===
3[![LICENSE](https://img.shields.io/badge/license-UNLICENSE-blue.svg)](UNLICENSE) [![GitHub release](https://img.shields.io/github/release/rss-bridge/rss-bridge.svg?logo=github)](https://github.com/rss-bridge/rss-bridge/releases/latest) [![Debian Release](https://img.shields.io/badge/dynamic/json.svg?logo=debian&label=debian%20release&url=https%3A%2F%2Fsources.debian.org%2Fapi%2Fsrc%2Frss-bridge%2F&query=%24.versions%5B0%5D.version&colorB=blue)](https://tracker.debian.org/pkg/rss-bridge) [![Guix Release](https://img.shields.io/badge/guix%20release-unknown-blue.svg)](https://www.gnu.org/software/guix/packages/R/) [![Actions Status](https://img.shields.io/github/workflow/status/RSS-Bridge/rss-bridge/Tests/master?label=GitHub%20Actions&logo=github)](https://github.com/RSS-Bridge/rss-bridge/actions) [![Docker Build Status](https://img.shields.io/docker/cloud/build/rssbridge/rss-bridge?logo=docker)](https://hub.docker.com/r/rssbridge/rss-bridge/)
4
5RSS-Bridge is a PHP project capable of generating RSS and Atom feeds for websites that don't have one. It can be used on webservers or as a stand-alone application in CLI mode.
6
7**Important**: RSS-Bridge is __not__ a feed reader or feed aggregator, but a tool to generate feeds that are consumed by feed readers and feed aggregators. Find a list of feed aggregators on [Wikipedia](https://en.wikipedia.org/wiki/Comparison_of_feed_aggregators).
8
9Supported sites/pages (examples)
10===
11
12* `Bandcamp` : Returns last release from [bandcamp](https://bandcamp.com/) for a tag
13* `Cryptome` : Returns the most recent documents from [Cryptome.org](http://cryptome.org/)
14* `DansTonChat`: Most recent quotes from [danstonchat.com](http://danstonchat.com/)
15* `DuckDuckGo`: Most recent results from [DuckDuckGo.com](https://duckduckgo.com/)
16* `Facebook` : Returns the latest posts on a page or profile on [Facebook](https://facebook.com/)
17* `FlickrExplore` : [Latest interesting images](http://www.flickr.com/explore) from Flickr
18* `GoogleSearch` : Most recent results from Google Search
19* `Identi.ca` : Identica user timeline (Should be compatible with other Pump.io instances)
20* `Instagram`: Most recent photos from an Instagram user
21* `OpenClassrooms`: Lastest tutorials from [fr.openclassrooms.com](http://fr.openclassrooms.com/)
22* `Pinterest`: Most recent photos from user or search
23* `ScmbBridge`: Newest stories from [secouchermoinsbete.fr](http://secouchermoinsbete.fr/)
24* `ThePirateBay` : Returns the newest indexed torrents from [The Pirate Bay](https://thepiratebay.se/) with keywords
25* `Twitter` : Return keyword/hashtag search or user timeline
26* `Wikipedia`: highlighted articles from [Wikipedia](https://wikipedia.org/) in English, German, French or Esperanto
27* `YouTube` : YouTube user channel, playlist or search
28
29And [many more](bridges/), thanks to the community!
30
31Output format
32===
33
34RSS-Bridge is capable of producing several output formats:
35
36* `Atom` : Atom feed, for use in feed readers
37* `Html` : Simple HTML page
38* `Json` : JSON, for consumption by other applications
39* `Mrss` : MRSS feed, for use in feed readers
40* `Plaintext` : Raw text, for consumption by other applications
41
42You can extend RSS-Bridge with your own format, using the [Format API](https://github.com/RSS-Bridge/rss-bridge/wiki/Format-API)!
43
44Screenshot
45===
46
47Welcome screen:
48
49![Screenshot](https://github.com/RSS-Bridge/rss-bridge/wiki/images/screenshot_rss-bridge_welcome.png)
50
51***
52
53RSS-Bridge hashtag (#rss-bridge) search on Twitter, in Atom format (as displayed by Firefox):
54
55![Screenshot](https://github.com/RSS-Bridge/rss-bridge/wiki/images/screenshot_twitterbridge_atom.png)
56
57Requirements
58===
59
60RSS-Bridge requires PHP 5.6 or higher with following extensions enabled:
61
62  - [`openssl`](https://secure.php.net/manual/en/book.openssl.php)
63  - [`libxml`](https://secure.php.net/manual/en/book.libxml.php)
64  - [`mbstring`](https://secure.php.net/manual/en/book.mbstring.php)
65  - [`simplexml`](https://secure.php.net/manual/en/book.simplexml.php)
66  - [`curl`](https://secure.php.net/manual/en/book.curl.php)
67  - [`json`](https://secure.php.net/manual/en/book.json.php)
68  - [`filter`](https://secure.php.net/manual/en/book.filter.php)
69  - [`sqlite3`](http://php.net/manual/en/book.sqlite3.php) (only when using SQLiteCache)
70
71Find more information on our [Wiki](https://github.com/rss-bridge/rss-bridge/wiki)
72
73Enable / Disable bridges
74===
75
76RSS-Bridge allows you to take full control over which bridges are displayed to the user. That way you can host your own RSS-Bridge service with your favorite collection of bridges!
77
78Find more information on the [Wiki](https://github.com/RSS-Bridge/rss-bridge/wiki/Whitelisting)
79
80**Notice**: By default, RSS-Bridge will only show a small subset of bridges. Make sure to read up on [whitelisting](https://github.com/RSS-Bridge/rss-bridge/wiki/Whitelisting) to unlock the full potential of RSS-Bridge!
81
82Deploy
83===
84
85Thanks to the community, hosting your own instance of RSS-Bridge is as easy as clicking a button!
86
87[![Deploy on Scalingo](https://cdn.scalingo.com/deploy/button.svg)](https://my.scalingo.com/deploy?source=https://github.com/sebsauvage/rss-bridge)
88[![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
89
90Getting involved
91===
92
93There are many ways for you to getting involved with RSS-Bridge. Here are a few things:
94
95- Share RSS-Bridge with your friends (Twitter, Facebook, ..._you name it_...)
96- Report broken bridges or bugs by opening [Issues](https://github.com/RSS-Bridge/rss-bridge/issues) on GitHub
97- Request new features or suggest ideas (via [Issues](https://github.com/RSS-Bridge/rss-bridge/issues))
98- Discuss bugs, features, ideas or [issues](https://github.com/RSS-Bridge/rss-bridge/issues)
99- Add new bridges or improve the API
100- Improve the [Wiki](https://github.com/RSS-Bridge/rss-bridge/wiki)
101- Host an instance of RSS-Bridge for your personal use or make it available to the community :sparkling_heart:
102
103Authors
104===
105
106We are RSS-Bridge community, a group of developers continuing the project initiated by sebsauvage, webmaster of [sebsauvage.net](http://sebsauvage.net), author of [Shaarli](http://sebsauvage.net/wiki/doku.php?id=php:shaarli) and [ZeroBin](http://sebsauvage.net/wiki/doku.php?id=php:zerobin).
107
108**Contributors** (sorted alphabetically):
109<!--
110Use this script to generate the list automatically (using the GitHub API):
111https://gist.github.com/LogMANOriginal/da00cd1e5f0ca31cef8e193509b17fd8
112-->
113
114* [16mhz](https://github.com/16mhz)
115* [adamchainz](https://github.com/adamchainz)
116* [Ahiles3005](https://github.com/Ahiles3005)
117* [akirk](https://github.com/akirk)
118* [Albirew](https://github.com/Albirew)
119* [aledeg](https://github.com/aledeg)
120* [alex73](https://github.com/alex73)
121* [alexAubin](https://github.com/alexAubin)
122* [AmauryCarrade](https://github.com/AmauryCarrade)
123* [AntoineTurmel](https://github.com/AntoineTurmel)
124* [arnd-s](https://github.com/arnd-s)
125* [ArthurHoaro](https://github.com/ArthurHoaro)
126* [Astalaseven](https://github.com/Astalaseven)
127* [Astyan-42](https://github.com/Astyan-42)
128* [AxorPL](https://github.com/AxorPL)
129* [ayacoo](https://github.com/ayacoo)
130* [az5he6ch](https://github.com/az5he6ch)
131* [b1nj](https://github.com/b1nj)
132* [benasse](https://github.com/benasse)
133* [Binnette](https://github.com/Binnette)
134* [captn3m0](https://github.com/captn3m0)
135* [chemel](https://github.com/chemel)
136* [Chouchen](https://github.com/Chouchen)
137* [ckiw](https://github.com/ckiw)
138* [cn-tools](https://github.com/cn-tools)
139* [cnlpete](https://github.com/cnlpete)
140* [corenting](https://github.com/corenting)
141* [couraudt](https://github.com/couraudt)
142* [csisoap](https://github.com/csisoap)
143* [cyberjacob](https://github.com/cyberjacob)
144* [da2x](https://github.com/da2x)
145* [Daiyousei](https://github.com/Daiyousei)
146* [dawidsowa](https://github.com/dawidsowa)
147* [DevonHess](https://github.com/DevonHess)
148* [disk0x](https://github.com/disk0x)
149* [DJCrashdummy](https://github.com/DJCrashdummy)
150* [Djuuu](https://github.com/Djuuu)
151* [DnAp](https://github.com/DnAp)
152* [dominik-th](https://github.com/dominik-th)
153* [Draeli](https://github.com/Draeli)
154* [Dreckiger-Dan](https://github.com/Dreckiger-Dan)
155* [drego85](https://github.com/drego85)
156* [drklee3](https://github.com/drklee3)
157* [em92](https://github.com/em92)
158* [eMerzh](https://github.com/eMerzh)
159* [EtienneM](https://github.com/EtienneM)
160* [fanch317](https://github.com/fanch317)
161* [fivefilters](https://github.com/fivefilters)
162* [floviolleau](https://github.com/floviolleau)
163* [fluffy-critter](https://github.com/fluffy-critter)
164* [Frenzie](https://github.com/Frenzie)
165* [fulmeek](https://github.com/fulmeek)
166* [ggiessen](https://github.com/ggiessen)
167* [Ginko-Aloe](https://github.com/Ginko-Aloe)
168* [Glandos](https://github.com/Glandos)
169* [gloony](https://github.com/gloony)
170* [GregThib](https://github.com/GregThib)
171* [griffaurel](https://github.com/griffaurel)
172* [Grummfy](https://github.com/Grummfy)
173* [gsantner](https://github.com/gsantner)
174* [guigot](https://github.com/guigot)
175* [hollowleviathan](https://github.com/hollowleviathan)
176* [hpacleb](https://github.com/hpacleb)
177* [hunhejj](https://github.com/hunhejj)
178* [husim0](https://github.com/husim0)
179* [IceWreck](https://github.com/IceWreck)
180* [j0k3r](https://github.com/j0k3r)
181* [JackNUMBER](https://github.com/JackNUMBER)
182* [jacquesh](https://github.com/jacquesh)
183* [JasonGhent](https://github.com/JasonGhent)
184* [jcgoette](https://github.com/jcgoette)
185* [jdesgats](https://github.com/jdesgats)
186* [jdigilio](https://github.com/jdigilio)
187* [JeremyRand](https://github.com/JeremyRand)
188* [JimDog546](https://github.com/JimDog546)
189* [Jocker666z](https://github.com/Jocker666z)
190* [johnnygroovy](https://github.com/johnnygroovy)
191* [johnpc](https://github.com/johnpc)
192* [joni1993](https://github.com/joni1993)
193* [joshcoales](https://github.com/joshcoales)
194* [klimplant](https://github.com/klimplant)
195* [kolarcz](https://github.com/kolarcz)
196* [kranack](https://github.com/kranack)
197* [kraoc](https://github.com/kraoc)
198* [l1n](https://github.com/l1n)
199* [laBecasse](https://github.com/laBecasse)
200* [lagaisse](https://github.com/lagaisse)
201* [lalannev](https://github.com/lalannev)
202* [ldidry](https://github.com/ldidry)
203* [Leomaradan](https://github.com/Leomaradan)
204* [liamka](https://github.com/liamka)
205* [Limero](https://github.com/Limero)
206* [LogMANOriginal](https://github.com/LogMANOriginal)
207* [lorenzos](https://github.com/lorenzos)
208* [lukasklinger](https://github.com/lukasklinger)
209* [m0zes](https://github.com/m0zes)
210* [matthewseal](https://github.com/matthewseal)
211* [mcbyte-it](https://github.com/mcbyte-it)
212* [mdemoss](https://github.com/mdemoss)
213* [melangue](https://github.com/melangue)
214* [metaMMA](https://github.com/metaMMA)
215* [mibe](https://github.com/mibe)
216* [mightymt](https://github.com/mightymt)
217* [mitsukarenai](https://github.com/mitsukarenai)
218* [Monocularity](https://github.com/Monocularity)
219* [MonsieurPoutounours](https://github.com/MonsieurPoutounours)
220* [mr-flibble](https://github.com/mr-flibble)
221* [mro](https://github.com/mro)
222* [mschwld](https://github.com/mschwld)
223* [mxmehl](https://github.com/mxmehl)
224* [nel50n](https://github.com/nel50n)
225* [niawag](https://github.com/niawag)
226* [Niehztog](https://github.com/Niehztog)
227* [Nono-m0le](https://github.com/Nono-m0le)
228* [ObsidianWitch](https://github.com/ObsidianWitch)
229* [OliverParoczai](https://github.com/OliverParoczai)
230* [Ololbu](https://github.com/Ololbu)
231* [ORelio](https://github.com/ORelio)
232* [otakuf](https://github.com/otakuf)
233* [Park0](https://github.com/Park0)
234* [Paroleen](https://github.com/Paroleen)
235* [PaulVayssiere](https://github.com/PaulVayssiere)
236* [pellaeon](https://github.com/pellaeon)
237* [PeterDaveHello](https://github.com/PeterDaveHello)
238* [Peterr-K](https://github.com/Peterr-K)
239* [Piranhaplant](https://github.com/Piranhaplant)
240* [pit-fgfjiudghdf](https://github.com/pit-fgfjiudghdf)
241* [pitchoule](https://github.com/pitchoule)
242* [pmaziere](https://github.com/pmaziere)
243* [Pofilo](https://github.com/Pofilo)
244* [prysme01](https://github.com/prysme01)
245* [Qluxzz](https://github.com/Qluxzz)
246* [quentinus95](https://github.com/quentinus95)
247* [rakoo](https://github.com/rakoo)
248* [RawkBob](https://github.com/RawkBob)
249* [regisenguehard](https://github.com/regisenguehard)
250* [Riduidel](https://github.com/Riduidel)
251* [rogerdc](https://github.com/rogerdc)
252* [Roliga](https://github.com/Roliga)
253* [ronansalmon](https://github.com/ronansalmon)
254* [rremizov](https://github.com/rremizov)
255* [sebsauvage](https://github.com/sebsauvage)
256* [shutosg](https://github.com/shutosg)
257* [simon816](https://github.com/simon816)
258* [Simounet](https://github.com/Simounet)
259* [somini](https://github.com/somini)
260* [squeek502](https://github.com/squeek502)
261* [stjohnjohnson](https://github.com/stjohnjohnson)
262* [Strubbl](https://github.com/Strubbl)
263* [sublimz](https://github.com/sublimz)
264* [sunchaserinfo](https://github.com/sunchaserinfo)
265* [SuperSandro2000](https://github.com/SuperSandro2000)
266* [sysadminstory](https://github.com/sysadminstory)
267* [t0stiman](https://github.com/t0stiman)
268* [tameroski](https://github.com/tameroski)
269* [teromene](https://github.com/teromene)
270* [tgkenney](https://github.com/tgkenney)
271* [thefranke](https://github.com/thefranke)
272* [ThePadawan](https://github.com/ThePadawan)
273* [TheRadialActive](https://github.com/TheRadialActive)
274* [theScrabi](https://github.com/theScrabi)
275* [thezeroalpha](https://github.com/thezeroalpha)
276* [TitiTestScalingo](https://github.com/TitiTestScalingo)
277* [triatic](https://github.com/triatic)
278* [VerifiedJoseph](https://github.com/VerifiedJoseph)
279* [WalterBarrett](https://github.com/WalterBarrett)
280* [wtuuju](https://github.com/wtuuju)
281* [xurxof](https://github.com/xurxof)
282* [yamanq](https://github.com/yamanq)
283* [yardenac](https://github.com/yardenac)
284* [ymeister](https://github.com/ymeister)
285* [ZeNairolf](https://github.com/ZeNairolf)
286
287Licenses
288===
289
290The source code for RSS-Bridge is [Public Domain](UNLICENSE).
291
292RSS-Bridge uses third party libraries with their own license:
293
294  * [`Parsedown`](https://github.com/erusev/parsedown) licensed under the [MIT License](http://opensource.org/licenses/MIT)
295  * [`PHP Simple HTML DOM Parser`](http://simplehtmldom.sourceforge.net/) licensed under the [MIT License](http://opensource.org/licenses/MIT)
296  * [`php-urljoin`](https://github.com/fluffy-critter/php-urljoin) licensed under the [MIT License](http://opensource.org/licenses/MIT)
297
298Technical notes
299===
300
301  * RSS-Bridge uses caching to prevent services from banning your server for repeatedly updating feeds. The specific cache duration can be different between bridges. Cached files are deleted automatically after 24 hours.
302  * You can implement your own bridge, [following these instructions](https://github.com/RSS-Bridge/rss-bridge/wiki/Bridge-API).
303  * You can enable debug mode to disable caching. Find more information on the [Wiki](https://github.com/RSS-Bridge/rss-bridge/wiki/Debug-mode)
304
305Rant
306===
307
308*Dear so-called "social" websites.*
309
310Your catchword is "share", but you don't want us to share. You want to keep us within your walled gardens. That's why you've been removing RSS links from webpages, hiding them deep on your website, or removed feeds entirely, replacing it with crippled or demented proprietary API. **FUCK YOU.**
311
312You're not social when you hamper sharing by removing feeds. You're happy to have customers creating content for your ecosystem, but you don't want this content out - a content you do not even own. Google Takeout is just a gimmick. We want our data to flow, we want RSS or Atom feeds.
313
314We want to share with friends, using open protocols: RSS, Atom, XMPP, whatever. Because no one wants to have *your* service with *your* applications using *your* API force-feeding them. Friends must be free to choose whatever software and service they want.
315
316We are rebuilding bridges you have willfully destroyed.
317
318Get your shit together: Put RSS/Atom back in.
319