Tuesday, September 15, 2026

finlight के साथ Python में रियल-टाइम स्टॉक न्यूज़ स्ट्रीम करें

Kevin Bartsch

finlight के साथ Python में रियल-टाइम स्टॉक न्यूज़ स्ट्रीम करें

न्यूज़ के लिए किसी API को पोल करने का मतलब है कि आप हमेशा थोड़ा पीछे रहते हैं। लाइव डैशबोर्ड और ट्रेडिंग सिग्नल के लिए, आप हर आर्टिकल उसके प्रकाशित होते ही चाहते हैं। finlight का WebSocket बिल्कुल यही करता है, और Python SDK इसे कुछ ही लाइनों में बना देता है। इस ट्यूटोरियल में आप स्टॉक न्यूज़ की एक लाइव स्ट्रीम बनाएँगे, जो टिकर के हिसाब से फ़िल्टर की हुई और पहले से सेंटीमेंट के लिए स्कोर की हुई होगी।

SDK इंस्टॉल करें

pip install finlight-client

पूरा उदाहरण

import asyncio

from finlight_client import FinlightApi, ApiConfig
from finlight_client.models import GetArticlesWebSocketParams

client = FinlightApi(config=ApiConfig(api_key="YOUR_API_KEY"))


def on_article(article):
    print(f"[{article.sentiment}] {article.title} - {article.source}")


async def main():
    await client.websocket.connect(
        request_payload=GetArticlesWebSocketParams(
            tickers=["AAPL", "NVDA"],
            includeEntities=True,
        ),
        on_article=on_article,
    )


if __name__ == "__main__":
    asyncio.run(main())

इसे चलाएँ, और हर बार जब कोई मैचिंग आर्टिकल प्रकाशित होती है, तो आपका on_article कॉलबैक उस आर्टिकल के साथ ट्रिगर होता है, जिसमें उसका sentiment, title, source, और (क्योंकि includeEntities ऑन है) टैग की गई कंपनियाँ शामिल होती हैं।

क्या हो रहा है

  • client.websocket.connect(...) एक परसिस्टेंट कनेक्शन खोलता है और मैचिंग आर्टिकल्स स्ट्रीम करता है। यह एक async कॉल है, इसलिए यह asyncio.run(...) के अंदर चलता है।
  • GetArticlesWebSocketParams REST API जैसे ही तरह के फ़िल्टर लेता है: tickers, query, sources, countries, categories, language, includeEntities, और बहुत कुछ।
  • on_article आपका हैंडलर है। यहीं पर आप सिर्फ़ प्रिंट करने के बजाय किसी क्यू में पुश करेंगे, डैशबोर्ड अपडेट करेंगे, या किसी सिग्नल का मूल्यांकन करेंगे।

SDK आपके लिए कनेक्शन संभालता है, जिसमें बैकऑफ़ के साथ ऑटोमैटिक रीकनेक्शन भी शामिल है, ताकि एक टूटा हुआ कनेक्शन आपकी स्ट्रीम को न रोके।

एन्हांस्ड बनाम रॉ

client.websocket एन्हांस्ड स्ट्रीम है: आर्टिकल्स पूरी एनरिचमेंट (सेंटीमेंट और एंटिटीज़) के साथ आती हैं। अगर आपको सिर्फ़ हल्का, बेसिक आर्टिकल डेटा जितनी जल्दी हो सके चाहिए, तो client.raw_websocket भी है, जिसका connect(...) स्वरूप वही है। जब विश्लेषण चाहिए तब एन्हांस्ड इस्तेमाल करें, जब न्यूनतम लेटेंसी चाहिए तब रॉ।

ठीक उतना ही फ़िल्टर करें जितना आपको चाहिए

चूँकि WebSocket वही फ़िल्टर स्वीकार करता है जो REST करता है, आप एक सटीक स्लाइस स्ट्रीम कर सकते हैं: सिर्फ़ क्रिप्टो न्यूज़, सिर्फ़ टिकर की एक वॉचलिस्ट, सिर्फ़ कुछ देश। पूरे फ़िल्टर सेट के लिए देखें एडवांस्ड फ़िल्टरिंग

आगे कहाँ जाएँ

अपनी मुफ़्त API key पाएँ →