{"id":15165891,"url":"https://github.com/robertmyles/tidyrss","last_synced_at":"2025-04-07T11:08:54.441Z","repository":{"id":37617309,"uuid":"82941330","full_name":"RobertMyles/tidyRSS","owner":"RobertMyles","description":"An R package for extracting 'tidy' data frames from RSS, Atom and JSON feeds","archived":false,"fork":false,"pushed_at":"2023-03-07T18:41:37.000Z","size":12952,"stargazers_count":82,"open_issues_count":2,"forks_count":20,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-07T11:08:48.668Z","etag":null,"topics":["atom-feed","atom-feed-parser","json-feed","jsonfeed","r","rss","rss-feed","rss-parser","tidyverse"],"latest_commit_sha":null,"homepage":"https://robertmyles.github.io/tidyRSS/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobertMyles.png","metadata":{"files":{"readme":"README.Rmd","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,"governance":null}},"created_at":"2017-02-23T15:31:43.000Z","updated_at":"2025-01-26T21:11:24.000Z","dependencies_parsed_at":"2023-01-31T07:01:13.734Z","dependency_job_id":"1cb10bb7-44c5-4424-a5b1-21615ec45e68","html_url":"https://github.com/RobertMyles/tidyRSS","commit_stats":{"total_commits":167,"total_committers":12,"mean_commits":"13.916666666666666","dds":0.6287425149700598,"last_synced_commit":"57c74492e4f4048cc9f88b2329384de12814de86"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertMyles%2FtidyRSS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertMyles%2FtidyRSS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertMyles%2FtidyRSS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertMyles%2FtidyRSS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobertMyles","download_url":"https://codeload.github.com/RobertMyles/tidyRSS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247640465,"owners_count":20971557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["atom-feed","atom-feed-parser","json-feed","jsonfeed","r","rss","rss-feed","rss-parser","tidyverse"],"created_at":"2024-09-27T04:05:51.433Z","updated_at":"2025-04-07T11:08:54.425Z","avatar_url":"https://github.com/RobertMyles.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n# tidyRSS \u003ca href='https://github.com/RobertMyles/tidyrss/'\u003e\u003cimg src='man/figures/logo.png' align=\"right\" height=\"139\" /\u003e\u003c/a\u003e\n```{r, echo = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"README-\"\n)\n```\n\n[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/tidyRSS)](https://cran.r-project.org/package=tidyRSS)\n[![CRAN_Download_Badge](http://cranlogs.r-pkg.org/badges/tidyRSS)](https://CRAN.R-project.org/package=tidyRSS)\n[![CRAN_Download_Badge](http://cranlogs.r-pkg.org/badges/grand-total/tidyRSS)](https://CRAN.R-project.org/package=tidyRSS)\n![R-CMD-check](https://github.com/RobertMyles/tidyRSS/workflows/R-CMD-check/badge.svg)\n[![Codecov test coverage](https://codecov.io/gh/RobertMyles/tidyRSS/branch/master/graph/badge.svg)](https://app.codecov.io/gh/RobertMyles/tidyRSS?branch=master)\n\ntidyRSS is a package for extracting data from [RSS feeds](https://en.wikipedia.org/wiki/RSS), including Atom feeds and JSON feeds. For geo-type feeds, see the section on changes in version 2 below, or jump directly to [tidygeoRSS](https://github.com/RobertMyles/tidygeoRSS), which is designed for that purpose.  \n\nIt is easy to use as it only has one function, `tidyfeed()`, which takes five arguments:  \n\n- the url of the feed; \n- a logical flag for whether you want the feed returned as a tibble or a list containing two tibbles; \n- a logical flag for whether you want HTML tags removed from columns in the dataframe; \n- a config list that is passed off to [`httr::GET()`](https://httr.r-lib.org/reference/config.html);\n- and a `parse_dates` argument, a logical flag, which will attempt to parse dates if `TRUE` (see below).  \n\nIf `parse_dates` is `TRUE`, `tidyfeed()` will attempt to parse dates using the [anytime](https://github.com/eddelbuettel/anytime) package. Note that this removes some lower-level control that you may wish to retain over how dates are parsed. See [this issue](https://github.com/RobertMyles/tidyRSS/issues/37) for an example. \n\n## Installation\n\nIt can be installed directly from [CRAN](https://cran.r-project.org/) with: \n\n```{r, eval=FALSE}\ninstall.packages(\"tidyRSS\")\n```\n\n\nThe development version can be installed from GitHub with the [remotes](https://github.com/r-lib/remotes) package: \n```{r, eval = F}\nremotes::install_github(\"robertmyles/tidyrss\")\n```\n\n## Usage \n\nHere is how you can get the contents of the [R Journal](https://journal.r-project.org/): \n\n```{r, eval = FALSE}\nlibrary(tidyRSS)\n\ntidyfeed(\"http://journal.r-project.org/rss.atom\")\n```\n\n## Changes in version 2.0.0\n\nThe biggest change in version 2 is that tidyRSS no longer attempts to parse geo-type feeds into [sf](https://github.com/r-spatial/sf/) tibbles. This functionality has been moved to [tidygeoRSS](https://github.com/RobertMyles/tidygeoRSS). \n\n## Issues \n\nXML feeds can be finicky things, if you find one that doesn't work with `tidyfeed()`, feel free to create an [issue](https://github.com/robertmyles/tidyrss/issues) with the url of the feed that you are trying. Pull Requests are welcome if you'd like to try and fix it yourself. For older RSS feeds, some fields will almost never be 'clean', that is, they will contain things like newlines (`\\n`) or extra quote marks. Cleaning these in a generic way is more or less impossible so I suggest you use [stringr](https://github.com/tidyverse/stringr), [strex](https://rorynolan.github.io/strex/) and/or tools from base R such as gsub to clean these. This will mainly affect the `item_description` column of a parsed RSS feed, and will not often affect Atom feeds (and should never be a problem with JSON).  \n\n\n## Related  \n\nThere are two other related packages that I'm aware of:  \n\n- [rss](https://github.com/noahhl/r-does-rss)\n- [feedeR](https://github.com/DataWookie/feedeR)\n\nIn comparison to feedeR, tidyRSS returns more information from the RSS feed (if it exists), and development on rss seems to have stopped some time ago.  \n\n# Other \n\nFor the schemas used to develop the parsers in this package, see:   \n\n- RSS: [https://validator.w3.org/feed/docs/rss2.html](https://validator.w3.org/feed/docs/rss2.html)  \n- Atom: [https://validator.w3.org/feed/docs/atom.html](https://validator.w3.org/feed/docs/atom.html)  \n- JSON: [https://jsonfeed.org/version/1](https://jsonfeed.org/version/1)  \n\nI've implemented most of the items in the schemas above. The following are not yet implemented: \n\n**Atom meta info:** \n\n- contributor, generator, logo, subtitle  \n\n**Rss meta info:**  \n\n- cloud\n- image\n- textInput\n- skipHours\n- skipDays\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertmyles%2Ftidyrss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertmyles%2Ftidyrss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertmyles%2Ftidyrss/lists"}