Python API wrapper for the Yahoo Fantasy Sports public API.
Project description
__ ________ _______ __
\ \ / / ____| __ \ \ / /
\ \_/ /| |__ | |__) \ \_/ /
\ / | __| | ___/ \ /
| | | | | | | |
|_| |_| |_| |_|
Python API wrapper for the Yahoo Fantasy Sports public API
By Wren J. R. (uberfastman)
Do you like the YFPY API wrapper? Star the repository here on GitHub and please consider helping support its ongoing development:
Cryptocurrency | Address |
---|---|
Bitcoin (BTC) | bc1qataspvklhewtswm357m0677q4raag5new2xt3e |
Ethereum (ETH) | 0x5eAa522e66a90577D49e9E72f253EC952CDB4059 |
Yahoo Fantasy Sports API Wrapper (YFPY)
Table of Contents
About
YFPY is a comprehensive wrapper around the Yahoo Fantasy Sports API. It allows for easy retrieval and parsing of almost any data you might wish to extract and use from any Yahoo fantasy league to which your Yahoo account has access (or for public leagues). The primary focus of this wrapper is on fantasy football (NFL), but it also supports usage with fantasy hockey (NHL), fantasy baseball (MLB), and fantasy basketball (NBA).
Installation
-
If you wish to use YFPY within another project, from within your project directory, run
pip install yfpy
or add
yfpy
to your projectrequirements.txt
. -
If you wish to download and use YFPY locally, clone the git repository:
git clone git@github.com:uberfastman/yfpy.git
Setup
- Log in to a Yahoo account with access to whatever fantasy leagues from which you wish to retrieve data.
- Go to https://developer.yahoo.com/apps/create/ and create an app (you must be logged into your Yahoo account as stated above). For the app, select the following options:
Application Name
(Required):yfpy
(you can name your app whatever you want, but this is just an example).Application Type
(Required): select theInstalled Application
radio button.Description
(Optional): you may write a short description of what the app does.Home Page URL
(Optional): if you have a web address related to your app you may add it here.Redirect URI(s)
(Required): this field must contain a valid redirect address, so you can usehttps://localhost:8080
API Permissions
(Required): check theFantasy Sports
checkbox. You can leave theRead
option selected (appears in an accordion expansion underneath theFantasy Sports
checkbox once you select it).- Click the
Create App
button. - Once the app is created, it should redirect you to a page for your app, which will show both a
Client ID
and aClient Secret
. - Make a copy of
test/EXAMPLE.private.json
, rename it to justprivate.json
, and copy theClient ID
andClient Secret
values to their respective fields (make sure the strings are wrapped regular quotes (""
), NOT formatted quotes (“”
)). The path to this file will be needed to point YFPY to your credentials. - Now you should be ready to initialize the OAuth2 connection between YFPY your Yahoo account.
Usage
- Follow the instructions in the Installation and Setup sections.
- The first time you use YFPY, a browser window will open up asking you to allow your app to access your Yahoo fantasy sports data. You MUST hit allow, and then copy the verification code that pops up into the command line prompt where it will now be asking for verification, hit enter, and the OAuth2 three-legged handshake should be complete and your data should have been successfully retrieved.
- YFPY should have now generated a
token.json
for you in the same directory where you stored yourprivate.json
credentials, and for all subsequent runs of your app, you should be able to keep retrieving Yahoo fantasy sports data using YFPY without re-verifying, since the generated refresh token should now just renew whenever you use the sametoken.json
file to authenticate your app.
Testing
YFPY has a collection of fully functional code snippets that can be run using pytest. These snippets demonstrate how to use YFPY to retrieve your Yahoo Fantasy Sports data.
- See
test/test_yfpy.py
for the example code snippets. - Before running any tests, make a copy of
test/EXAMPLE.env
in thetest
directory and rename it to.env
. - Copy your Yahoo
Client ID
andClient Secret
into the environment variables in.env
so that pytest can use them when hitting the Yahoo Fantasy Sports API. - You can invoke the pytest tests by first changing to the test directory from the root of the YFPY repository:
cd test
pytest test_yfpy.py
- If you want to run the tests from elsewhere, you will need to allow pytest to use interactive prompts:
pytest -s test/test_yfpy.py
Dependencies
YFPY has only been tested on macOS, but is written to be platform-agnostic. It runs only in Python 3, and has only been tested from Python 3.6 through Python 3.10.
Direct project dependencies can be viewed in requirements.txt
, and all dependencies, including transitive dependencies, can be viewed in dev-requirements.txt
.
Troubleshooting
Occasionally when you use the Yahoo fantasy sports API, there are hangups on the other end that can cause data not to transmit, and you might encounter an error similar to this:
Traceback (most recent call last):
File "yfpy-app.py", line 114, in <module>
var = app.run()
File "/Users/your_username/PATH/T0/LOCAL/PROJECT/yfpy-app.py", line 429, in run
for team in team_standings:
IndexError: list index out of range
Typically when the above error (or a similar error) occurs, it simply means that one of the Yahoo Fantasy Sports API calls failed and so no data was retrieved. This can be fixed by simply re-running data query.
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.