inst/python/twscraper_bridge.py) imported once per session, with real arguments instead of generated Python source. Tweet and user fields are mapped in one place.get_retweeters_batch() fetches all tweets with one twscrape API instance and one event loop instead of one Python run per tweet.to_dataframe() builds columns directly instead of one tibble per row (about 7x faster for 5,000 tweets, same output). Without 'tibble' it now returns a data.frame with the same column names as the tibble (id instead of tweet_id/user_id). 'purrr' and 'dplyr' are no longer suggested..onLoad() no longer overrides a user-set cli.ignore_unknown_rstudio_theme option.options(twscrapeR.db_file = ...) and a db_file argument in every scraping function, so searches use the same account database as add_account().install_agent_skill() installs an Agent Skills skill (inst/skills/twscraper) that teaches AI agents such as Posit Assistant or Claude Code to use twscrapeR conversationally: setup, choosing functions, returned fields, recipes and common errors.user_tweets(), get_user(), get_followers(), get_following(), user_media(), user_tweets_and_replies() and verified_followers(); a quote or backslash broke the call. Inputs are now validated and passed as arguments.db_file used in add_account() and always read accounts.db.AttributeError.filter_by_lang(), filter_by_date() and sort_tweets() no longer misalign results when some tweets lack the field.print() of a user no longer fails when verified is missing.Compatibility release for twscrape 0.18.0 after X/Twitter SearchTimeline changes.
product to search_tweets() so callers can choose "Latest" or "Top" results.search_tweets() product validation, generated Python search calls, and query escaping.twscrape >= 0.18.0.TWS_COOKIES or TWS_AUTH_TOKEN + TWS_CT0.twscrape 0.18.0.twscrape 0.17.0 to 0.18.0.Quality and maintenance release after validating v0.1.1 live scraping.
testthat coverage for environment credential helpers, Python string escaping, tweet ID extraction, and batch retweeters conversion.NEWS.md and docs/RELEASE.md so release history and the .9000 development workflow are explicit.twscrape fixes are still unreleased.Maintenance release focused on making live scraping work reliably after changes in X/Twitter's web bundles.
twscrape 0.17.0 by applying a runtime compatibility patch for the x-client-transaction-id parser used by twscrape.add_account_from_env() to load credentials from .Renviron or environment variables using TWS_* names.TWS_AUTH_TOKEN and TWS_CT0 variables, with automatic cookie-string construction.get_retweeters_batch() for retrieving retweeters across multiple tweets while preserving source_tweet_id.testthat coverage for credential helpers, tweet ID extraction, retweeters batch conversion, and string escaping.No account available for queue message, and the IndexError: list index out of range upstream twscrape failure mode.Initial public release.
twscrape setup via setup_twscraper().add_account(), list_accounts(), and delete_account().to_dataframe() and export helpers for CSV/JSON.