
Research
Security News
The Growing Risk of Malicious Browser Extensions
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
An async Python client for the RoSolve API, supporting FunCaptcha solving for Roblox.
pip install rosolve
import asyncio
from rosolve import Client
async def main():
# Initialize with a default proxy (optional)
async with Client(
"your_api_key",
proxy="http://user:pass@host:port" # Optional default proxy
) as client:
# Get balance
balance = await client.get_balance()
print(f"Current balance: {balance}")
if __name__ == "__main__":
asyncio.run(main())
Here's a complete example of solving a FunCaptcha challenge:
import asyncio
from curl_cffi import requests
from rosolve import Client
async def main():
# Initialize your Roblox session
roblox_session = requests.Session()
roblox_session.headers.update({
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/122.0.0.0",
"sec-ch-ua": '"Chromium";v="122", "Google Chrome";v="122"'
})
# Your configuration
api_key = "your_api_key_here"
cookie = ".ROBLOSECURITY=your_cookie_here"
# Proxy configuration (multiple options)
default_proxy = "http://user:pass@host:port" # For all requests
solving_proxy = "http://other:pass@host:port" # Just for solving
async with Client(api_key, proxy=default_proxy) as client:
try:
# Solve the FunCaptcha using a specific proxy for this solve
solution = await client.solve_funcaptcha(
roblox_session=roblox_session,
blob="your_blob_data_here",
proxy=solving_proxy, # Override default proxy (optional)
cookie=cookie
)
if solution:
print("Successfully solved captcha!")
print(f"Token: {solution}")
else:
print("Failed to solve captcha")
except Exception as e:
print(f"An error occurred: {e}") # Now with color-coded errors!
if __name__ == "__main__":
asyncio.run(main())
The main class for interacting with the RoSolve API.
client = Client(
api_key: str,
session: Optional[aiohttp.ClientSession] = None,
proxy: Optional[str] = None # Default proxy for all requests
)
api_key
(str): Your RoSolve API keysession
(Optional[aiohttp.ClientSession]): An optional aiohttp session to useproxy
(Optional[str]): Default proxy to use for all requestsGet your current RoSolve balance.
balance = await client.get_balance()
Returns:
float
: Your current balanceRaises:
InvalidKey
: If the API key is invalidSolve a FunCaptcha challenge.
solution = await client.solve_funcaptcha(
roblox_session: requests.Session,
blob: str,
proxy: str,
cookie: str,
max_retries: int = 60,
retry_delay: float = 1.0
)
Parameters:
roblox_session
(requests.Session): The Roblox session objectblob
(str): The blob data from the challengeproxy
(str): Proxy to use (format: "protocol://user:pass@host:port")cookie
(str): Roblox cookiemax_retries
(int, optional): Maximum retries for checking solution. Defaults to 60retry_delay
(float, optional): Delay between retries in seconds. Defaults to 1.0Returns:
Optional[str]
: The solution token if successful, None if failedRaises:
TaskError
: If the task creation failsThe package provides several custom exceptions with color-coded error messages:
from rosolve import RoSolveException, InvalidKey, TaskError, ProxyError
try:
solution = await client.solve_funcaptcha(...)
except InvalidKey as e:
print(e) # Yellow error message
except TaskError as e:
print(e) # Red error message
except ProxyError as e:
print(e) # Yellow error message
except RoSolveException as e:
print(e) # Red error message
async with Client(api_key) as client:
# Your code here
balance = await client.get_balance()
if balance < 10:
print("Low balance warning!")
try:
solution = await client.solve_funcaptcha(...)
except Exception as e:
print(f"Error: {e}")
# With authentication
proxy = "http://username:password@host:port"
proxy = "https://username:password@host:port"
proxy = "socks5://username:password@host:port"
# Without authentication
proxy = "http://host:port"
# Set default proxy for all requests
client = Client(api_key, proxy="http://user:pass@host:port")
# Override proxy for specific solves
solution = await client.solve_funcaptcha(..., proxy="http://other:pass@host:port")
This project is licensed under the Unlicense - see the LICENSE file for details.
If you encounter any issues or have questions, please open an issue on GitHub.
FAQs
An async Python client for the RoSolve API
We found that rosolve demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.