Media Cloud API Client Library
Project description
MediaCloud Python API Client
🚧 Under construction 🚧
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.
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
- Run
pytest
to make sure all the test pass - Update the version number in
pyproject.toml
- Make a brief note in the
CHANGELOG.md
about what changes - Run
flit build
to create an install package - Run
flit publish
to upload it to PyPI
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.1.4.tar.gz
(17.3 kB
view hashes)
Built Distribution
mediacloud-4.1.4-py3-none-any.whl
(19.6 kB
view hashes)
Close
Hashes for mediacloud-4.1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c8333728ae5301be263fd59c76e2f4b44450cb7b4e1ede7b4b97a5b39779588 |
|
MD5 | ecba36d5bd52c7eb20f2b0fcad98ac63 |
|
BLAKE2b-256 | 1a071b4cf0aff33a285580f3ce1296f2d422ed89bd3c3dbd53898b13118a22c6 |