stream_tweets: Collect a live stream of Twitter data

View source: R/stream.R

stream_tweetsR Documentation

Collect a live stream of Twitter data


Streams public statuses to a file via one of the following four methods:

  1. Sampling a small random sample of all publicly available tweets

  2. Filtering via a search-like query (up to 400 keywords)

  3. Tracking via vector of user ids (up to 5000 user_ids)

  4. Location via geo coordinates (1-360 degree location boxes)

Learn more in vignette("stream", package = "rtweet")


  q = "",
  timeout = 30,
  parse = TRUE,
  token = NULL,
  file_name = NULL,
  verbose = TRUE,
  append = TRUE,



Query used to select and customize streaming collection method. There are four possible methods:

  1. The default, q = "", returns a small random sample of all publicly available Twitter statuses.

  2. To filter by keyword, provide a comma separated character string with the desired phrase(s) and keyword(s).

  3. Track users by providing a comma separated list of user IDs or screen names.

  4. Use four latitude/longitude bounding box points to stream by geo location. This must be provided via a vector of length 4, e.g., c(-125, 26, -65, 49).


Integer specifying number of seconds to stream tweets for. Stream indefinitely with timeout = Inf.

The stream can be interrupted at any time, and file_name will still be valid file.


Use FALSE to opt-out of parsing the tweets.


Expert use only. Use this to override authentication for a single API call. In most cases you are better off changing the default for all calls. See auth_as() for details.


Character with name of file. If not specified, will write to a temporary file stream_tweets*.json.


If TRUE, display a progress bar.


If TRUE, will append to the end of file_name; if FALSE, will overwrite.


Other arguments passed in to query parameters.


A tibble with one row per tweet


Stream: Filter:

See Also



## Not run: 
# stream tweets mentioning "#rstats" for 10 seconds
rstats1 <- stream_tweets("#rstats", timeout = 10, file_name = "rstats.json")

# Download another 10s worth of data to the same file
rstats2 <- stream_tweets("#rstats", timeout = 10, file_name = "rstats.json", 
                         append = TRUE)

# stream tweets about continental USA for 10 seconds
usa <- stream_tweets(location = lookup_coords("usa"), file_name = "usa.json", 
                     timeout = 10)

## End(Not run)

rtweet documentation built on July 21, 2022, 5:10 p.m.