~thirdplace/feeds

8298f7fc54778d123ba06106b69609fd703a2cc8 — Dag 2 years ago 0b18a80
more feeds. add link to demo in readme
2 files changed, 106 insertions(+), 55 deletions(-)

M README.md
M feeds.php
M README.md => README.md +6 -3
@@ 1,10 1,13 @@
# Thirdplace Feeds

This repository contains a bunch of rss feed urls.
This repository contains a bunch of feed (RSS) urls.

They can be used for more pleasant feed discovery.

Patches for missing feed urls are very welcomed!
Patches for missing feeds are very welcomed!

See [http://discovery.thirdplace.no](http://discovery.thirdplace.no)
for a demo.

## Tutorial



@@ 102,4 105,4 @@ Convert the php array to json:

    php -r "print json_encode(require 'feeds.php', JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);"

## Reference
\ No newline at end of file
## Reference

M feeds.php => feeds.php +100 -52
@@ 3,105 3,105 @@
return [
    [
        'name'          => 'Reddit',
        'description'   => 'This feed contains subreddit submissions',
        'description'   => 'This feed contains subreddit submissions.',
        'pattern'       => 'https://www.reddit.com/r/%s',
        'feed'          => 'https://www.reddit.com/r/%s.rss',
        'example'       => 'https://www.reddit.com/r/PHP/',
    ],
    [
        'name'          => 'BitChute',
        'description'   => 'This feed contains channel videos',
        'description'   => 'This feed contains channel videos.',
        'pattern'       => 'https://www.bitchute.com/channel/%s',
        'feed'          => 'https://www.bitchute.com/feeds/rss/channel/%s',
        'example'       => 'https://www.bitchute.com/channel/9HEvh3LuJ6ZS/',
    ],
    [
        'name'          => 'Blogger',
        'description'   => 'This feed contains blog posts',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.blogspot.com',
        'feed'          => 'https://%s.blogspot.com/feeds/posts/default',
        'example'       => 'https://theboombust.blogspot.com',
    ],
    [
        'name'          => 'Gab TV',
        'description'   => 'This feed contains channel videos',
        'description'   => 'This feed contains channel videos.',
        'pattern'       => 'https://tv.gab.com/channel/%s',
        'feed'          => 'https://tv.gab.com/channel/%s/feed/rss',
        'example'       => 'https://tv.gab.com/channel/realdonaldtrump',
    ],
    [
        'name'          => 'Hey.com',
        'description'   => 'This feed contains blog posts',
        'name'          => 'Hey World',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://world.hey.com/%s',
        'feed'          => 'https://world.hey.com/%s/feed.atom',
        'example'       => 'https://world.hey.com/dhh',
    ],
    [
        'name'          => 'LiveJournal',
        'description'   => 'This feed contains blog posts',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.livejournal.com',
        'feed'          => 'https://%s.livejournal.com/data/rss',
        'example'       => 'https://shadsdf.livejournal.com/',
    ],
    [
        'name'          => 'Meetup.com',
        'description'   => 'This feed contains meetup events',
        'description'   => 'This feed contains meetup events.',
        'pattern'       => 'https://www.meetup.com/%s',
        'feed'          => 'https://www.meetup.com/%s/events/rss',
        'feed'          => 'https://www.meetup.com/%s/events/rss/',
        'example'       => 'https://www.meetup.com/WordPressNYC/',
    ],
    [
        'name'          => 'Medium.com',
        'description'   => 'This feed contains blog posts',
        'name'          => 'Medium',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://medium.com/%s',
        'feed'          => 'https://medium.com/feed/%s',
        'example'       => 'https://medium.com/bowtie',
    ],
    [
        'name'          => 'Medium.com',
        'description'   => 'This feed contains blog posts',
        'name'          => 'Medium',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.medium.com',
        'feed'          => 'https://%s.medium.com/feed',
        'example'       => 'https://kokumura.medium.com',
    ],
    [
        'name'          => 'odysee.com',
        'description'   => 'This feed contains channel videos',
        'name'          => 'Odysee',
        'description'   => 'This feed contains channel videos.',
        'pattern'       => 'https://odysee.com/@%s', // [\w:]+
        'feed'          => 'https://odysee.com/$/rss/@%s',
        'example'       => 'https://odysee.com/@DistroTube:2',
    ],
    [
        'name'          => 'posthaven.com',
        'description'   => 'This feed contains blog posts',
        'name'          => 'Posthaven',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.posthaven.com',
        'feed'          => 'https://%s.posthaven.com/posts.atom',
        'example'       => 'https://saveyourface.posthaven.com/',
    ],
    [
        'name'          => 'Acast',
        'description'   => 'This feed contains podcast episodes',
        'description'   => 'This feed contains podcast episodes.',
        'pattern'       => 'https://play.acast.com/s/%s',
        'feed'          => 'https://feeds.acast.com/public/shows/%s',
        'example'       => 'https://play.acast.com/s/el-hilo',
    ],
    [
        'name'          => 'Github',
        'description'   => 'This feed contains repository releases (tags)',
        'description'   => 'This feed contains repository releases (tags).',
        'pattern'       => 'https://github.com/%s/%s',
        'feed'          => 'https://github.com/%s/%s/releases.atom',
        'example'       => 'https://github.com/RSS-Bridge/rss-bridge',
    ],
    [
        'name'          => 'silvrback.com',
        'description'   => 'This feed contains blog posts',
        'name'          => 'Silvrback',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.silvrback.com',
        'feed'          => 'https://%s.silvrback.com/feed',
        'example'       => 'https://rclayton.silvrback.com/use-state-machines',
    ],
    [
        'name'          => 'Substack',
        'description'   => 'This feed contains blog posts',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.substack.com',
        'feed'          => 'https://%s.substack.com/feed',
        'example'       => 'https://atis.substack.com',


@@ 114,118 114,166 @@ return [
        'example'       => 'https://omny.fm/shows/tid-er-penger-en-podcast-med-peter-warren',
    ],
    [
        'name'          => 'TransistorFM (transistor.fm)',
        'description'   => 'This feed contains podcast episodes',
        'name'          => 'TransistorFM',
        'description'   => 'This feed contains podcast episodes.',
        'pattern'       => 'https://%s.transistor.fm',
        'feed'          => 'https://%s.transistor.fm/feed',
        'example'       => 'https://remotelyinteresting.transistor.fm',
    ],
    [
        'name'          => 'kickstarter.com',
        'description'   => 'This feed contains project posts',
        'pattern'       => 'https://kickstarter.com/projects/%s/%s',
        'name'          => 'Kickstarter',
        'description'   => 'This feed contains project posts.',
        'pattern'       => 'https://www.kickstarter.com/projects/%s/%s',
        'feed'          => 'https://www.kickstarter.com/projects/%s/%s/posts.atom',
        'example'       => 'https://www.kickstarter.com/projects/brogcoffee/brg-be-your-own-barista',
    ],
    [
        'name'          => 'Podspace (pod.space)',
        'description'   => 'This feed contains podcast episodes',
        'name'          => 'Podspace',
        'description'   => 'This feed contains podcast episodes.',
        'pattern'       => 'https://pod.space/%s',
        'feed'          => 'https://feed.pod.space/%s',
        'example'       => 'https://pod.space/tompratmedgunnartjomlid',
    ],
    [
        'name'          => 'micro.blog',
        'description'   => 'This feed contains blog posts',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.micro.blog',
        'feed'          => 'https://%s.micro.blog/feed.xml',
        'example'       => 'https://tinyroofnail.micro.blog',
    ],
    [
        'name'          => 'Blot',
        'description'   => 'This feed contains blog posts',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.blot.im',
        'feed'          => 'https://%s.blot.im/feed.rss',
        'example'       => 'https://sulluzzu.blot.im',
    ],
    [
        'name'          => 'Tumblr',
        'description'   => 'This feed contains blog posts',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.tumblr.com',
        'feed'          => 'https://%s.tumblr.com/rss',
        'example'       => 'https://ckoerner.tumblr.com',
    ],
    [
        'name'          => 'Vimeo',
        'description'   => 'This feed contains user videos',
        'pattern'       => 'https://vimeo.com/%s',
        'description'   => 'This feed contains user videos.',
        // todo: i think this needs a user prefix
        'pattern'       => 'https://vimeo.com/user%s',
        'feed'          => 'https://vimeo.com/%s/videos/rss',
        'example'       => 'https://vimeo.com/user4464579',
    ],
    [
        'name'          => 'Vimeo',
        'description'   => 'This feed contains channel videos.',
        'pattern'       => 'https://vimeo.com/channels/%s',
        'feed'          => 'https://vimeo.com/channels/590212/videos/rss',
        'example'       => 'https://vimeo.com/channels/590212',
    ],
    [
        'name'          => 'Vimeo',
        'description'   => 'This feed contains group videos.',
        'pattern'       => 'https://vimeo.com/groups/%s',
        'feed'          => 'https://vimeo.com/groups/%s/videos/rss',
        'example'       => 'https://vimeo.com/groups/149228/videos/rss',
    ],
    [
        'name'          => 'Wikipedia',
        'description'   => 'This feed contains page edits',
        'description'   => 'This feed contains page edits.',
        'pattern'       => 'https://(\w+)\.wikipedia\.org/wiki/(.+)$',
        'feed'          => 'https://%s.wikipedia.org/w/index.php?title=%s&action=history&feed=rss',
        'example'       => 'https://en.wikipedia.org/wiki/PHP',
    ],
    [
        'name'          => 'Wikipedia',
        'description'   => 'This feed contains user contributions',
        'description'   => 'This feed contains user contributions.',
        'pattern'       => 'https://(\w+)\.wikipedia\.org/wiki/.+:([\w-]+)',
        'feed'          => 'https://%s.wikipedia.org/w/api.php?action=feedcontributions&user=%s',
        'example'       => 'https://en.wikipedia.org/wiki/User:Peaceray',
    ],
    [
        'name'          => 'Youtube',
        'description'   => 'This feed contains channel videos',
        'description'   => 'This feed contains channel videos.',
        'pattern'       => 'https://www.youtube.com/channel/%s',
        'feed'          => 'https://www.youtube.com/feeds/videos.xml?channel_id=%s',
        'example'       => 'https://www.youtube.com/channel/UCLG7twDweqlHpyv0EDOjrgw',
    ],
    [
         // This feed mostly doesn't work due to legacy cruft at yt
        'name'          => 'Youtube',
        'description'   => 'This feed contains user/channel videos',
        'pattern'       => 'https://www.youtube.com/c/%s',
        'feed'          => 'https://www.youtube.com/feeds/videos.xml?user=%s',
        'example'       => 'https://www.youtube.com/c/NumotTheNummyYT',
        'is_flaky'      => true,
    ],
#    [
#         // This feed mostly doesn't work due to legacy cruft at yt
#        'name'          => 'Youtube',
#        'description'   => 'This feed contains user/channel videos.',
#        'pattern'       => 'https://www.youtube.com/c/%s',
#        'feed'          => 'https://www.youtube.com/feeds/videos.xml?user=%s',
#        'example'       => 'https://www.youtube.com/c/NumotTheNummyYT',
#        'is_flaky'      => true,
#    ],
    [
        'name'          => 'Youtube',
        'description'   => 'This feed contains user videos',
        'description'   => 'This feed contains user videos.',
        'pattern'       => 'https://www.youtube.com/user/%s',
        'feed'          => 'https://www.youtube.com/feeds/videos.xml?user=%s',
        'example'       => 'https://www.youtube.com/user/LAHWF',
    ],
    [
        'name'          => 'Youtube',
        'description'   => 'This feed contains playlist videos',
        'description'   => 'This feed contains playlist videos.',
        'pattern'       => 'https://www.youtube\.com/.*list=(\w+)',
        'feed'          => 'https://www.youtube.com/feeds/videos.xml?playlist_id=%s',
        'example'       => 'https://www.youtube.com/watch?v=nNoK0_QEq3o&list=PLYxcDFQEgBQOy5gT4dSiuownY1wiqT7q1',
    ],
    [
        'name'          => 'Buzzsprout',
        'description'   => 'This feed contains podcast episodes',
        'pattern'       => 'https://buzzsprout.com/%s',
        'description'   => 'This feed contains podcast episodes.',
        'pattern'       => 'https://www.buzzsprout.com/%s',
        'feed'          => 'https://feeds.buzzsprout.com/%s.rss',
        'example'       => 'https://www.buzzsprout.com/129904',
    ],
    [
        'name'          => 'Libsyn',
        'description'   => 'This feed contains podcast episodes',
        'description'   => 'This feed contains podcast episodes.',
        'pattern'       => 'https://%s.libsyn.com',
        'feed'          => 'https://%s.libsyn.com/rss',
        'example'       => 'https://gymlaunch.libsyn.com',
    ],
    [
        'name'          => 'Wordpress.com',
        'description'   => 'This feed contains blog posts',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.wordpress.com',
        'feed'          => 'https://%s.wordpress.com/feed',
        'example'       => 'https://afridstrom.wordpress.com',
    ],
    [
        // SourceForge projects have more feeds. This is the main one.
        'name'          => 'SourceForge',
        'description'   => 'This feed contains recent project activity.',
        'pattern'       => 'https://sourceforge.net/p(?:rojects)?/([\w-]+)',
        'feed'          => 'https://sourceforge.net/projects/%s/activity/feed',
        'example'       => 'https://sourceforge.net/p/simplehtmldom/bugs/193/',
    ],
    [
        'name'          => 'Mataroa',
        'description'   => 'This feed contains blog posts.',
        'pattern'       => 'https://%s.mataroa.blog',
        'feed'          => 'https://%s.mataroa.blog/rss/',
        'example'       => 'https://durov.mataroa.blog',
    ],
    [
        'name'          => 'Pinterest',
        'description'   => 'This feed contains user pins.',
        'pattern'       => 'https://www.pinterest.com/%s',
        'feed'          => 'https://www.pinterest.com/%s/feed.rss',
        'example'       => 'https://www.pinterest.com/everprettycom/',
    ],
    [
        'name'          => 'Pinterest',
        'description'   => 'This feed contains board pins.',
        'pattern'       => 'https://www.pinterest.com/%s/%s',
        'feed'          => 'https://www.pinterest.com/%s/%s.rss',
        'example'       => 'https://www.pinterest.com/everprettycom/_products/',
    ],
    // jenkins
    // packagist
    // git.sr.ht
    // gitlab
];