Skip to content
Related Articles

Related Articles

Read latest news using newsapi | Python

Improve Article
Save Article
  • Last Updated : 17 Sep, 2019
Improve Article
Save Article

In this article, we will learn how to create a Python script to read the latest news. We will fetch news from news API and after that, we will read news using pyttsx3.

Modules required :

pyttsx3 - pip install pyttsx3
requests - pip install requests
Getting news API :
To get a API for news we will use newsapi.org. we will create account and take API key by clicking on get API button.

Step #1: Import modules needed




import pyttsx3
import requests
import json
import time


Step #2: Setting up URL with API key, place your API key here.




       'country = in&'
       'apiKey =')
  
url += 'your_api_key_here'


Step #3: Setting an engine for pyttsx3 for reading news.




engine = pyttsx3.init()


Step #4: Setting up properties of our engine, means reading rate, volume, and sound of a voice.




rate = engine.getProperty('rate')
engine.setProperty('rate', rate + 10)
   
volume = engine.getProperty('volume')
engine.setProperty('volume', volume-0.60)
   
sound = engine.getProperty ('voices');
engine.setProperty('voice', 'sound[1].id')


Step #5: Trying to send request to get news. Here, engine.say() function is used to read news.




try:
    response = requests.get(url)
except:
    engine.say("can, t access link, plz check you internet ")
   
news = json.loads(response.text)





for new in news['articles']:
    print("##############################################################\n")
    print(str(new['title']), "\n\n")
    engine.say(str(new['title']))
    print('______________________________________________________\n')
  
    engine.runAndWait()
  
    print(str(new['description']), "\n\n")
    engine.say(str(new['description']))
    engine.runAndWait()
    print("..............................................................")
    time.sleep(2)


Now, everything is ready build a loop to read new articles.

 
Below is the complete Python implementation :




import pyttsx3
import requests
import json
import time
  
       'country = in&'
       'apiKey =')
  
url +='your_api_key_here'
  
   
engine = pyttsx3.init()
rate = engine.getProperty('rate')
engine.setProperty('rate', rate + 10)
  
volume = engine.getProperty('volume')
engine.setProperty('volume', volume-0.60)
  
sound = engine.getProperty ('voices');
engine.setProperty('voice', 'sound[1].id')
  
  
try:
    response = requests.get(url)
except:
    engine.say("can, t access link, plz check you internet ")
  
news = json.loads(response.text)
  
  
for new in news['articles']:
    print("##############################################################\n")
    print(str(new['title']), "\n\n")
    engine.say(str(new['title']))
    print('______________________________________________________\n')
  
    engine.runAndWait()
  
    print(str(new['description']), "\n\n")
    engine.say(str(new['description']))
    engine.runAndWait()
    print("..............................................................")
    time.sleep(2)


Output:


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!