Package: facebook-data-miner
Facebook Data MinerFacebook-Data-Miner provides a set of tools that can help you analyze the data
that Facebook has on you.The vision is to support both data extraction, data analysis and data
visualization capabilities through any of the interfaces.All computation happens on your machine so no data gets sent to remote
computers or third-parties.PrerequisitesAs of now the package was only tested on Linux, however withpipenvit is should be easy to set the application up on Windows.PythonThe application was tested on Debian 10 and Python v3.8.3.
You will need Python 3.8 (some features are used).To download Python refer to the official Pythondistribution page.Your Facebook dataThis package works by analyzing your Facebook data, so you have to download it.Please refer to the followinglinkin order to do so.IMPORTANT NOTE: you have to set Facebook's language to English(US) for the
time being you request your data. This change can of course be reverted later.You will only need the zip file's absolute path later to use this software.You have to change theDATA_PATHvariable in theconfiguration.ymlfile.NOTE:facebook-data-minerwill extract your zip file in the same directory.
For this you may need several GBs of free space depending on the volume of the
original data.This repositoryClone this repository by either using SSH:gitclonegit@github.com:tardigrde/facebook-data-miner.gitor HTTPS:gitclonehttps://github.com/tardigrde/facebook-data-miner.gitDependeciesThis project usespipenvfor dependency and virtual environment management.Install it by typing:pipinstall--userpipenvIn the project root (wherePipfileis) run:pipenvinstall--devMake sure you run the application in this environment.LintWith the makefile:make lintRun testsWith the makefile:make testMake sure you run the application in this environment.UsageThe app has both a CLI and an API. For now, API is the preferred way to
run the app since there is no database yet, which would hold your facebook data
in memory. CLI works but it's slow.Jupyter notebookI wrote two jupyter notebooks in order to showcase the capabilities and
features of the API and CLI. The notebook contains lots of comments to
help understand how the app is built,
and what kind of information you can access, and how.For this you have to start ajupyterserver.
As in the notebooks mentioned, you have to set the $PYTHONPATH env var
before starting a jupyter server.exportPYTHONPATH="$PWD"Then type the following in your terminal if you want to usejupyer notebook:jupyernotebookor forjupyter lab:jupyterlabSelectnotebooks/API.ipynb(ornotebooks/CLI.ipynb) and start executing the cells.The APIAs in the notebook already described, the entrypoint isminer/app.py'sAppclass. For now the docstring is the only
documentation.Call it from a script (after you set the data path) like:fromminer.appimportAppapp=App()The CLIThe command-line interface has a lot of depth, as you are showed innotebooks/CLI.ipynb, but it is slow,
because the data that gets read in does not stay in RAM.For running the CLI:exportPYTHONPATH="$PWD"python./miner/app.py--helpContributionHelp is more than welcome. It is still a long way to go until v1.0.0Ideas are welcome too. Feel free to open a new issue.