Skip to main content

Media Cloud API Client Library

Project description

MediaCloud Python API Client

This is a python client for accessing the MediaCloud API v4. This allows you to perform cross-platform searches and also browse our collection/source/feed directory.

pylint pytest GitHub license

Usage

First sign up for an API key. Then

pip install mediacloud

Check CHANGELOG.md for a detailed history of changes.

Examples

Take a look at the test in the mediacloud/test/ module for more detailed examples.

Count Stories Matching a Query

import mediacloud.api
US_NATIONAL_COLLECTION = 34412234
mc_search = mediacloud.api.SearchApi(YOUR_MC_API_KEY)
all_stories = []
pagination_token = None
more_stories = True
while more_stories:
    page, pagination_token = mc_search.story_list('robots', start_date= , end_date= collection_ids=[US_NATIONAL_COLLECTION])
    all_stories += page
    more_stories = pagination_token is not None
print(f"Retrived {len(all_stories)} matching stories")

Page Through Stories Matching a Query

import mediacloud.api
INDIA_NATIONAL_COLLECTION = 34412118
mc_search = mediacloud.api.SearchApi(YOUR_MC_API_KEY)
all_stories = []
pagination_token = None
more_stories = True
while more_stories:
    page, pagination_token = mc_search.story_list('modi AND biden', collection_ids=[INDIA_NATIONAL_COLLECTION],
                                                  pagination_token=pagination_token)
    all_stories += page
    more_stories = pagination_token is not None
print(f"Retrived {len(all_stories)} matching stories")

Fetch all Sources in a Collection

import mediacloud.api
INDIA_NATIONAL_COLLECTION = 34412118
SOURCES_PER_PAGE = 100  # the number of sources retrieved per page
mc_directory = mediacloud.api.DirectoryApi(YOUR_MC_API_KEY)
sources = []
offset = 0   # offset for paging through
while True:
    # grab a page of sources in the collection
    response = mc_directory.source_list(collection_id=INDIA_NATIONAL_COLLECTION, limit=SOURCES_PER_PAGE, offset=offset)
    # add it to our running list of all the sources in the collection
    sources += response['results']
    # if there is no next page then we're done so bail out
    if response['next'] is None:
        break
    # otherwise setup to fetch the next page of sources
    offset += len(response['results'])
print("India National Collection has {} sources".format(len(sources)))

Development

If you are interested in adding code to this module, first clone the GitHub repository.

Installing

  • flit install
  • pre-commit install

Testing

pytest

Distributing a New Version

  1. Run pytest to make sure all the test pass
  2. Update the version number in pyproject.toml
  3. Make a brief note in the CHANGELOG.md about what changes
  4. Commit changes, and tag commit with version number
  5. Push to main

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

mediacloud-4.5.0.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

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

mediacloud-4.5.0-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file mediacloud-4.5.0.tar.gz.

File metadata

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

File hashes

Hashes for mediacloud-4.5.0.tar.gz
Algorithm Hash digest
SHA256 5cc8488e3e1e684775aa30a97ca5392c6948dc1153a1285136b867a4921fa1ab
MD5 b62dc5cdaa1b62689ac1d1d5b438cc90
BLAKE2b-256 ee468bb68347a3811783f0622cd0694db9820bb6f1d8a816d51010a8ab59fd43

See more details on using hashes here.

Provenance

The following attestation bundles were made for mediacloud-4.5.0.tar.gz:

Publisher: publish-to-pypi.yml on mediacloud/api-client

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

File details

Details for the file mediacloud-4.5.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for mediacloud-4.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ac8a3197f4bd27ef8ae34fb651fb8d19d9a6d8880ce0feb4aaed6e8ca85c6cb
MD5 9409e3b50deefe21b6d4b8c55bbc6462
BLAKE2b-256 f9b1640acb0cdb8fc1633983bab1670ce4b1449eeb2345aa9ed3aa6cd7f6678d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mediacloud-4.5.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on mediacloud/api-client

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