How to Scrape Yandex Videos Results

In my previous blog posts, we were able to scrape videos from Google videos and Yahoo videos with SerpApi. Along with Google and Yahoo, Yandex is a popular search engine, particularly in Russian-speaking regions, that includes video content.

In this blog post, I'll help you to scrape video data from Yandex. By scraping videos from Yandex videos, you can target users in Russian-speaking regions, localize video content, and do market research, analyzing trends for Russian-speaking markets.

Setting up a SerpApi account

SerpApi offers a free plan for newly created accounts. Head to the sign-up page to register an account and complete your first search with our interactive playground. When you want to do more searches with us, please visit the pricing page.

Once you are familiar with all results, you can utilize SERP APIs using your API Key.

Scrape your first Yandex Videos results with SerpApi

Head to the Yahoo Videos Results from the documentation on SerpApi for details.

In this tutorial, we will scrape videos results when searching with the "coffee" keyword. The data contains: "position", "title", "link", "thumbnail", "source", "date", "duration", "views" and more. You can also scrape more information with SerpApi.

First, you need to install the SerpApi client library.

pip install google-search-results

Set up the SerpApi credentials and search.

import serpapi, os, json

params = {
    'api_key': 'YOUR_API_KEY',         # your serpapi api
    'engine': 'yandex_videos',         # SerpApi search engine	
    'text': 'coffee'
}

To retrieve Yandex Videos Results for a given search term, you can use the following code:

results = serpapi.Client().search(params)["videos_results"]

You can store Videos Results JSON data in databases or export them to a CSV file.

import csv

header = ['position', 'title', 'link', 'thumbnail', 'source', 'date', 'duration', 'views', 'description']

with open('yandex_videos.csv', 'w', encoding='UTF8', newline='') as f:
    writer = csv.writer(f)

    writer.writerow(header)

    for item in results:
        print(item)
        writer.writerow([item.get('position'), item.get('title'), item.get('preview', {}).get('url'), item.get('thumbnail'), item.get('source'), item.get('date'), item.get('duration'), item.get('views'), item.get('description')])

This example is using Python, but you can also use your all your favorite programming languages likes Ruby, NodeJS, Java, PHP....

If you have any questions, please feel free to contact me.