PyMedium - Unofficial Medium API
Project description
PyMedium is an unofficial Medium API written in python flask. It provides developers to access to user, post list and detail information from Medium website. This is a read-only API to access public information from Medium, you can customize this API to fit your requirements and deploy on your own server.
Now we provide another way: python client SDK to let you integrate into your application. More detail go to wiki page.
Installation
Before running PyMedium API, you have to clone the code from this repository, install requirements at first.
$ git clone git@github.com:enginebai/PyMedium.git
$ cd PyMedium
$ pip install -r requirements.txt
Then download web driver to driver folder from Selenium or via the command-line with curl (update {VERSION} with the latest version code and {OS} with your server operating system.
$ mkdir driver | cd driver
$ curl -O https://chromedriver.storage.googleapis.com/{VERSION}/chromedriver_{OS}.zip
$ unzip chromedriver_{OS}.zip
Usage
To run this API application, use the flask command as same as Flask Quickstart
$ export FLASK_APP=./pymedium/api.py
$ export FLASK_DEBUG=1 ## if you run in debug mode.
$ flask run
* Running on http://localhost:5000/
Documentation
Users
GET /@{username} - Get user profile
Response
{
"avatar": "1*Y7zH0UM975YmchIO86uIGA.jpeg",
"bio": "Mixtape of developer, designer and startup. Cofounder and developer of DualCores Studio. Follow my technical blog: http://enginebai.logdown.com/",
"display_name": "Engine Bai",
"facebook": "789985027713671",
"followedby_count": 445,
"following_count": 238,
"publications": [
{
"creator_user_id": "3301d32a6bba",
"description": "Stories from the mix of designer and developer. 設計與工程的交織,混搭激盪出不同的想像。",
"display_name": "DualCores Studio",
"follower_count": 302,
"image": {
"image_id": "1*DLixNgsMpK5B74na3EDucQ.png",
"original_height": 591,
"original_width": 591
},
"logo": {
"image_id": "1*DLixNgsMpK5B74na3EDucQ.png",
"original_height": 591,
"original_width": 591
},
"name": "dualcores-studio",
"post_count": 0,
"publication_id": "275e26e7c1b2",
"url": "https://medium.com/dualcores-studio"
},
...more
],
"twitter": "enginebai",
"user_id": "3301d32a6bba",
"username": "enginebai"
}
Publication
GET /{publication_name} - Get publication profile
{
"creator_user_id": "3301d32a6bba",
"description": "Stories from the mix of designer and developer. 設計與工程的交織,混搭激盪出不同的想像。",
"display_name": "DualCores Studio",
"follower_count": 302,
"image": {
"image_id": "1*DLixNgsMpK5B74na3EDucQ.png",
"original_height": 591,
"original_width": 591
},
"logo": {
"image_id": "1*DLixNgsMpK5B74na3EDucQ.png",
"original_height": 591,
"original_width": 591
},
"name": "dualcores-studio",
"post_count": 0,
"publication_id": "275e26e7c1b2",
"url": "https://medium.com/dualcores-studio"
}
Post
GET /@{username}/posts - Get user latest posts
GET /{publication_name}/posts - Get publication latest posts
GET /top - Get most popular today posts
GET /tag/{tag} - Get tagged in popular posts
GET /tag/{tag}/latest - Get tagged in latest posts
Parameters
Name |
Type |
Description |
---|---|---|
n |
integer |
The count of posts to return. Default is 10. |
Response
[
{
"image_count": 14,
"post_date": 1478533474858,
"post_id": "99a3d86df228",
"preview_image": {
"image_id": "1*zhnQJhNzp-Oal1-GU1EUKw.png",
"original_height": 412,
"original_width": 608
},
"read_time": 7.74811320754717,
"recommend_count": 351,
"response_count": 10,
"title": "Make an android custom view, publish and open source.",
"url": "https://medium.com/dualcores-studio/make-an-android-custom-view-publish-and-open-source-99a3d86df228",
"word_count": 1669
},
...more
]
Post detail
GET /post - Get the post content
Parameters
Name |
Type |
Desc ript ion |
---|---|---|
u |
stri ng |
The post url to pars e cont ent. |
form at |
stri ng |
(opt iona l) The form at of resp onse , the valu e coul d be te xt , ht ml , md ``, ``js on , defa ult is te xt . |
Response
## Simple text, json, html, markdown format
Issues
Feel free to submit bug reports or feature requests and make sure you read the contribution guideline before opening any issue.
Contributing
Check the open/close issues or open a fresh issue for feature request or bug report with different labels (feature/bug).
Fork this repository on GitHub to start customizing on master or new branch.
Write a test which shows that the feature works as expected or the bug was fixeed.
Send a pull request and wait for code review.
License
Copyright (c) 2017 Engine Bai Licensed under the MIT license.
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
File details
Details for the file PyMedium-1.0.3.tar.gz
.
File metadata
- Download URL: PyMedium-1.0.3.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a55398401e2871bb5ddbe788e52ede0ba65287ccd2f460b4c9022e400f0a0a7 |
|
MD5 | 4751a2c0c83a0eea162678e000ffcc1c |
|
BLAKE2b-256 | 2689368ca438bb7a24b34edc5dea9913c18fea6aaa1edb84a48ce0b38857bcf3 |