{"id":36995190,"url":"https://github.com/brego/feedbin-opml-export","last_synced_at":"2026-01-13T23:47:30.339Z","repository":{"id":56951281,"uuid":"218616819","full_name":"brego/feedbin-opml-export","owner":"brego","description":"Convert Feedbin subscriptions to an OPML file, which can be published on your website","archived":false,"fork":false,"pushed_at":"2019-11-06T21:43:40.000Z","size":18,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-11T23:27:24.838Z","etag":null,"topics":["composer-package","feedbin","feedbin-export","opml","opml-export","php","php-library","rss"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brego.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-30T20:17:58.000Z","updated_at":"2022-02-06T22:51:09.000Z","dependencies_parsed_at":"2022-08-21T03:40:25.785Z","dependency_job_id":null,"html_url":"https://github.com/brego/feedbin-opml-export","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brego/feedbin-opml-export","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brego%2Ffeedbin-opml-export","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brego%2Ffeedbin-opml-export/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brego%2Ffeedbin-opml-export/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brego%2Ffeedbin-opml-export/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brego","download_url":"https://codeload.github.com/brego/feedbin-opml-export/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brego%2Ffeedbin-opml-export/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28405308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T21:51:37.118Z","status":"ssl_error","status_checked_at":"2026-01-13T21:45:14.585Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer-package","feedbin","feedbin-export","opml","opml-export","php","php-library","rss"],"created_at":"2026-01-13T23:47:30.273Z","updated_at":"2026-01-13T23:47:30.330Z","avatar_url":"https://github.com/brego.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Feedbin to OPML export\n\nUsing [Feedbin API], fetch and convert your [Feedbin] subscriptions to an OPML file, which can be\npublished on your website.\n\nThis library is meant to periodically publish a list of your personal subscriptions - there is no\nbuilt in cache mechanism, but please implement that on your end. There's no reason to missuse the\nAPI server ressources.\n\n## Usage\n\nConstruct an object of `Brego\\FeedbinOpmlExport\\Curl` with your Feedbin credentials, pass it to \n`Brego\\FeedbinOpmlExport\\Feedbin`, and run `fetchAndConvertToOpml` to get an instance of \n`Brego\\FeedbinOpmlExport\\Opml\\Document` which you can manipulate, save to disk as OPML or echo\ndirectly.\n\nThe following examples are also found in the `examples` directory:\n\n### Simple example\n\n```php\nuse Brego\\FeedbinOpmlExport\\CurlFake;\nuse Brego\\FeedbinOpmlExport\\Feedbin;\n\n/**\n * Your user and password for Feedbin.\n */\n$user = 'your-feedbin@account.user';\n$password = 'your-feedbin-password';\n\n/**\n * CurlFake is a stub Used for testing, so we don't call the live API all of the time. It uses json\n * files found in `/json-examples/`.\n *\n * Use Brego\\FeedbinOpmlExport\\Curl to call the API.\n */\n$curl = new CurlFake($user, $password);\n$feedbin = new Feedbin($curl);\n\n/**\n * This shortcut method fetches subscriptions, taggings, and convert those to an OPML document\n * containing subscriptions and categories. See example-full.php for more controll.\n */\n$document = $feedbin-\u003efetchAndConvertToOpml('RSS subscriptions for John Doe', 'johndoe@exemple.com');\n\necho $document;\n```\n\n### Full example\n\n```php\n\nuse Brego\\FeedbinOpmlExport\\CurlFake;\nuse Brego\\FeedbinOpmlExport\\Feedbin;\nuse Brego\\FeedbinOpmlExport\\Opml\\Document;\nuse Brego\\FeedbinOpmlExport\\Opml\\Element;\nuse Brego\\FeedbinOpmlExport\\Opml\\Outlines;\n\n/**\n * Your user and password for Feedbin.\n */\n$user = 'your-feedbin@account.user';\n$password = 'your-feedbin-password';\n\n/**\n * CurlFake is a stub Used for testing, so we don't call the live API all of the time. It uses json\n * files found in `/json-examples/`.\n *\n * Use Brego\\FeedbinOpmlExport\\Curl to call the API.\n */\n$curl = new CurlFake($user, $password);\n$feedbin = new Feedbin($curl);\n\n/**\n * The Feedbin class provides interfaces to fetch Subscriptions and Taggings, and make categories\n * out of those. This is usefull if you need to manipulate those in any way before converting to\n * OPML.\n */\n$subscriptions = $feedbin-\u003efetchSubscriptions();\n$taggings = $feedbin-\u003efetchTaggings();\n$categories = $feedbin-\u003emakeCategories($subscriptions, $taggings);\n\n$document = (new Document())\n    -\u003ehead(\n        function(Element $head) {\n            $head\n                -\u003eaddAttribute('title', 'RSS subscriptions for John Doe')\n                -\u003eaddAttribute('ownerEmail', 'johndoe@exemple.com')\n                -\u003eaddAttribute('dateUpdated', (new DateTime())-\u003eformat(DateTime::RFC822));\n        }\n    )\n    -\u003ebody(\n        function(Element $body) use ($subscriptions, $categories) {\n            $body\n                -\u003eaddChildren(Outlines::from($subscriptions))\n                -\u003eaddChildren(Outlines::from($categories));\n        }\n    );\n\n/**\n * `flatten()` shown here can be useful if you want to save the OPML document to a file.\n */\necho $document-\u003eflatten();\n```\n\n## Links\n\n * [Feedbin]\n * [Feedbin API]\n\n[Feedbin]: https://feedbin.com\n[Feedbin API]: https://github.com/feedbin/feedbin-api\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrego%2Ffeedbin-opml-export","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrego%2Ffeedbin-opml-export","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrego%2Ffeedbin-opml-export/lists"}