- Notifications
You must be signed in to change notification settings - Fork100
A working snapshot of nflgame (for historic purposes). This project is no longer active.
License
Unlicense, Unknown licenses found
Licenses found
derek-adair/nflgame
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Project willonly work with historic data
I decided to abandon my efforts on this project and have begun looking for a new owner. You can read up on the detailshere, but tl;dr; I'm a bitter coder looking for a non-bitter coder to give this project love.
A python3 fork of...nflgame
Currently released undernflgame-redux drop-in replacement fornflgame so as to easily use with projects likenfldb.
nflgame is an API to retrieve and read NFL data feeds, HOWEVER, the nfl has nuked the feeds this project relies on effectively killing it over night. There has been a concerted effort to include the historic data, but going forward, unless this project getsa new maintainer, it will remain in this state.
this project is no longer python2 compatible.. The old python2 (<1.2.20) branchshould work but... come on now... justupgrade.
Create a && activate a python3 venv
python3 -m venv ~/python3source ~/python3/bin/activate
In yourpython 3 virtualenv...
pip install nflgame-redux
- Update players
nflgame-update-players
If you need help, please come visit us in discord on channelhttps://discord.gg/3cHXbRp
.
If you aren't a programmer, then thetutorial for nonprogrammersis for you!
Also, nflgame has decent (but not perfect)API documentation. If you're just looking around, make sure to look at the submodules as well.
Feel free toopen a new issue on thetracker, which is currently the most expedient way to get support.
nflgame works by parsing the same JSON data that powers NFL.com's liveGameCenter. Therefore, nflgame can be used to report game statistics whilea game is being played.
The package comes pre-loaded with game data from every pre- and regularseason game from 2009 up until the present (I try to update it every week).Therefore, querying such data does not actually ping NFL.com.
However, if you try to search for data in a game that is being currentlyplayed, the JSON data will be downloaded from NFL.com at each request (so becareful not to inspect for data too many times while a game is being played).If you ask for data for a particular game that hasn't been cached to diskbut is no longer being played, it will be automatically cached to diskso that no further downloads are required.
Here's a quick teaser to find the top 5 running backs by rushing yards in thefirst week of the 2013 season:
importnflgamegames=nflgame.games(2013,week=1)players=nflgame.combine_game_stats(games)forpinplayers.rushing().sort('rushing_yds').limit(5):msg='{} {} carries for {} yards and {} TDs'print(msg.format(p,p.rushing_att,p.rushing_yds,p.rushing_tds))
And the output is:
L.McCoy 31 carries for 184 yards and 1 TDsT.Pryor 13 carries for 112 yards and 0 TDsS.Vereen 14 carries for 101 yards and 0 TDsA.Peterson 18 carries for 93 yards and 2 TDsR.Bush 21 carries for 90 yards and 0 TDs
Or you could find the top 5 passing plays in the same time period:
importnflgamegames=nflgame.games(2013,week=1)plays=nflgame.combine_plays(games)forpinplays.sort('passing_yds').limit(5):printp
And the output is:
(DEN, DEN 22, Q4, 3 and 8) (4:42) (Shotgun) P.Manning pass short left to D.Thomas for 78 yards, TOUCHDOWN. Penalty on BAL-E.Dumervil, Defensive Offside, declined.(DET, DET 23, Q3, 3 and 7) (5:58) (Shotgun) M.Stafford pass short middle to R.Bush for 77 yards, TOUCHDOWN.(NYG, NYG 30, Q2, 1 and 10) (2:01) (No Huddle, Shotgun) E.Manning pass deep left to V.Cruz for 70 yards, TOUCHDOWN. Pass complete on a fly pattern.(NO, NO 24, Q2, 2 and 6) (5:11) (Shotgun) D.Brees pass deep left to K.Stills to ATL 9 for 67 yards (R.McClain; R.Alford). Pass 24, YAC 43(NYG, NYG 20, Q1, 1 and 10) (13:04) E.Manning pass short middle to H.Nicks pushed ob at DAL 23 for 57 yards (M.Claiborne). Pass complete on a slant pattern.
Great news! I've pulled nfldb into python3 and it comes with nflgame 2.0 already installed. It even has an example docker image that should get everyone up and running pretty quick.
Other related projects ofAndrew Gallant's...
nflvidwith nfldb tosearch and watch video ofplays.
Since player meta data (like a player's team, position or status) changesthroughout the season, the JSON database included with nflgame needs to beupdated occasionally. While I try to update it and push out new releasesweekly, you can also update the database by running the following command:
nflgame-update-players
It will send at least 32 requests (and usually not much more than that) toNFL.com and update the JSON player database in place by default. I tend to runit every 12 hours or so. This is theonly piece of nflgame that relies onweb scraping.
Every sequence of players can be easily dumped into a file formattedas comma-separated values (CSV). CSV files can then be opened directlywith programs like Excel, Google Docs, Open Office and Libre Office.
You could dump every statistic from a game like so:
game.players.csv('player-stats.csv')
Or if you want to get crazy, you could dump the statistics of every playerfrom an entire season:
nflgame.combine(nflgame.games(2010)).csv('season2010.csv')
- All active development takes place on the "dev" branch. This is where pull requests should be submitted against.
- Bug fixes for released versions should be submitted against "master" branch and will get merged accordingly.
- This project will stick toSemantic Versioning
- Tests aregreatly encouraged but not required.
Authored byAndrew Gallant maintained byDerek Adair
About
A working snapshot of nflgame (for historic purposes). This project is no longer active.
Topics
Resources
License
Unlicense, Unknown licenses found
Licenses found
Stars
Watchers
Forks
Packages0
Languages
- Python79.6%
- HTML19.6%
- Other0.8%