Skip to main content

A powerful Python library for scraping real-time market data, indicators, and ideas from TradingView.

Project description

TV Scraper

Python 3.11+ MIT License

A powerful, real-time Python library for extracting financial data, indicators, and ideas from TradingView.com.

🔥 New in v1.2.0: use Python to manage Pine Script workflows and use your custom Pine indicators inside Streamer.


Attribution

This project is based on mnwato/tradingview-scraper. Thanks to the original author for the foundational work.

📚 Documentation

For complete documentation, installation guides, API references, and examples, visit:

📖 Full Documentation

Quick Links


🚀 Quick Start

This library requires Python 3.11+ and uses uv for dependency management.

Installation

Install from PyPI (recommended):

pip install tv-scraper

Or install with uv (developer / alternate):

# Clone the repository for development
git clone https://github.com/smitkunpara/tv-scraper.git
cd tv-scraper

# Install runtime deps (uv auto-creates virtual environment)
uv sync

If you prefer to install the published package using uv:

uv add tv-scraper

Basic Usage Examples

Fetching Technical Indicators

Get RSI and Stochastic indicators for Bitcoin on Binance:

from tv_scraper import Technicals

# Initialize scraper
technicals = Technicals()

# Scrape indicators for BTCUSD
result = technicals.scrape(
    exchange="BINANCE",
    symbol="BTCUSD",
    timeframe="1d",
    technical_indicators=["RSI", "Stoch.K"]
)

if result["status"] == "success":
    print(result["data"])

Scraping Trading Ideas

Get popular trading ideas for Ethereum:

from tv_scraper import Ideas

# Initialize scraper
ideas = Ideas()

# Scrape popular ideas for ETHUSD
result = ideas.get_ideas(
    exchange="CRYPTO",
    symbol="ETHUSD",
    start_page=1,
    end_page=1,
    sort_by="popular"
)

if result["status"] == "success":
    print(f"Found {len(result['data'])} ideas.")

✨ Key Features

  • 📊 Real-Time Data: Stream live OHLCV and indicator values via WebSocket
  • 📰 Comprehensive Coverage: Scrape Ideas, News, Market Movers, and Screener data
  • 📈 Fundamental Data: Access detailed financial statements and profitability ratios
  • 🔧 Advanced Tools: Symbol Markets lookup, Symbol Overview, and Minds Community discussions
  • 📋 Structured Output: All data returned as clean JSON/Python dictionaries
  • 🌍 Multi-Market Support: 260+ exchanges across stocks, crypto, forex, and commodities
  • ⚡ Fast & Reliable: Built with async support and robust error handling
  • 🌲 Pine + Streamer Workflow: Manage Pine scripts and stream merged multi-indicator output through one custom indicator

🌲 Pine + Streamer Highlight

Goal

Use one custom Pine script to combine multiple indicator calculations, then fetch that merged output with Streamer.

This keeps strategy logic in a single Pine file and helps avoid plan-based indicator slot limits.

Use Pine.list_saved_scripts() to retrieve your custom script id and version, then pass that pair to Streamer.get_candles(..., indicators=[(id, version)]).

Why this matters

Some TradingView plans limit how many indicators you can stream at once (commonly 2 for free usage). By combining multiple calculations into one custom Pine script, you can stream a richer multi-signal output through a single indicator slot.

📋 What's Included

Core Modules

  • Indicators: 81+ technical indicators (RSI, MACD, Stochastic, etc.)
  • Options: Fetch option chains by expiration or strike price
  • Ideas: Community trading ideas and strategies
  • News: Financial news with provider filtering
  • Real-Time: WebSocket streaming for live data
  • Screener: Advanced stock screening with custom filters
  • Market Movers: Top gainers, losers, and active stocks
  • Fundamentals: Financial statements and ratios
  • Calendar: Earnings and dividend events

Data Sources

  • 260+ Exchanges: Binance, Coinbase, NASDAQ, NYSE, and more
  • 16+ Markets: Stocks, Crypto, Forex, Futures, Bonds
  • Real-Time Updates: Live price feeds and indicators
  • Historical Data: Backtesting and analysis support

🛠️ Development & Testing

For contributors and developers, this project includes comprehensive tooling for local testing.

Quick Commands

# Run all quality checks before committing
make check

# Full CI simulation with coverage
make ci

# Individual checks
make lint          # Run ruff linter
make format        # Auto-format code
make type-check    # Run mypy type checker
make test          # Run tests

Pre-commit Hooks

Pre-commit hooks automatically run on every commit to enforce code quality:

# Install hooks (one-time setup)
make install-hooks

Full Documentation

See LOCAL_TESTING.md for complete details on:

  • Makefile commands
  • Pre-commit hook configuration
  • Running GitHub Actions locally with act
  • CI/CD workflow testing

Publishing to PyPI

This project is configured to use Trusted Publishing (OIDC) via GitHub Actions. See PUBLISHING.md for step-by-step instructions on setting up your PyPI project.


🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tv_scraper-1.2.1.tar.gz (180.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tv_scraper-1.2.1-py3-none-any.whl (60.7 kB view details)

Uploaded Python 3

File details

Details for the file tv_scraper-1.2.1.tar.gz.

File metadata

  • Download URL: tv_scraper-1.2.1.tar.gz
  • Upload date:
  • Size: 180.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tv_scraper-1.2.1.tar.gz
Algorithm Hash digest
SHA256 a161b1e0130fd7aec0c5bd61477acaeeae30f7c92d8976563dccba79cf70de2b
MD5 df486a93497f50bd251f7ae324ec4275
BLAKE2b-256 7d0a8a6eef913109ffef1025d7c73568a8d0a9c3e3c0f78085fe2160820f895e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tv_scraper-1.2.1.tar.gz:

Publisher: publish.yml on smitkunpara/tv-scraper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tv_scraper-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: tv_scraper-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 60.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tv_scraper-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b7cb216893e11ee868ccebc4f5433694ebd052b78036b90922a961b9c2426b8d
MD5 c4f42e1b071292245b2cf71290ca5de8
BLAKE2b-256 19f3bb2af0a0846c48de86286298159f72049df881d961b7d30a62d91e8860bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for tv_scraper-1.2.1-py3-none-any.whl:

Publisher: publish.yml on smitkunpara/tv-scraper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page