Python script to navigate a Black Board Learn sites API.
Currently, only supports basic Black Board Course, Content and Attachment navigation via the Public Blackboard API
pip install -r requirements.txt
or python -m pip install -r requirements.txt
python main.py
-v, --version Displays Application Version Default: False
-g, --gui Use GUI instead of CLI Default: False (Not Implemented)
-m, --mass-download Download All Course Documents Default: False
-u, --username Username to Login With Default: None
-p, --password Password to Login With Default: None
-s, --site Base Website Where Institute Black Board is Located Default: None
-l, --location Local Path To Save Content Default: './'
-c, --course Course ID to Download Default: None
-r, --record Create A Manifest For Downloaded Data Default: True
-b, --backup Keep Local Copy of Outdated Files Default: False
-V, --verbose Print Program Runtime Information Default: False (Not Implemented)
-C, --config Location of Configuration File Default: './config.json'
-i, --ignore-input Ignore Input at Runtime Default: False (Not Implemented)
-t, --threaded Allows For Mass Downloads to Run in Multiple Threads Default: True
-n, --num-threads Sets the Maximum Number of Threads to Download With Default: 4 (4 Concurrent Downloads)
-B, --browser Browser to Get Login Cookies from Default: None (Browsers Available: Chrome, Firefox, Opera, Edge, Chromium)
python main.py -t -n 8 -m -l "../" -r
-t
(Threaded)-n 8
(8 Concurrent Threads)-m
(Mass Download)-l "../"
(Save Files Up One Directory)-r
(Create Manifest)When you launch the program it will prompt you for your login credentials for your Institution:
Input Password: < Enter Password Here >
Enter Black Board Host Website [ [ ] or 'c' to Search ]:
If you are successfully logged in you will then be shown a list of courses to chose from.
Sample Output (Layout is still a work in progress)
By entering a number shown within the square brackets the program will then attempt to get the given course data from either the Rest API (or BlackBoardMobile API). This will then output a new selection asking whether you want to get the child contents of the course or download all attachments within the course
Sample Output (Layout is still a work in progress)
If Get Content
is selected the console will output a sub-selection of the child elements of the course
When a child element is selected the console will clear and show all the child elements of the course (similar to the child content output)
Get Child Attachments
will output a sub-selection similar to the previous menu
listing all possible child elements to access (Will show error message and navigate back if not child content is
found)Selecting Get Attachments
will output a sub-selection of all possible attached files to download.
When an attachment is selected the console will once again clear and show two options:
Download
which will download the attachment then navigate back to the parent elementBack
which will just go back to the parent element
If Download All Content
is selected the program will then iterate through all the elements of the course and
its children and download all attachments (while Emulating the Blackboard Folder Structure) and print the filename
when the download of that file is finished
Full license here
This project is licensed under the terms of the MIT license.