Metadata-Version: 2.1
Name: dl_coursera
Version: 0.1.1
Summary: A simple, fast, and reliable Coursera crawling & downloading tool
Home-page: https://github.com/feng-lei/dl_coursera
Author: Fenglei Zhang
Author-email: fenglei4518@hotmail.com
License: UNKNOWN
Description: A simple, fast, and reliable Coursera crawling & downloading tool
        
        ## Todo
        
        - [x] Lectures (videos, subtitles, slides)
        - [x] Readings
        - [ ] Quizs
        - [ ] Jupyter notebooks
        
        ## Install
        
        > Python 3.x is required. It is recommended to install this tool in a virtual environment
        
        ```
        $ pip install dl_coursera
        $ dl_coursera --version
        ```
        
        ## How to use
        
        ```
        $ python ..\dl_coursera_run.py --help
        usage: dl_coursera_run.py [-h] [--version] [--email EMAIL]
                                  [--password PASSWORD] [--cookies COOKIES] --slug
                                  SLUG [--isSpec] [--n-worker N_WORKER]
                                  [--outdir OUTDIR] --how
                                  {builtin,curl,aria2,aria2-rpc,uget}
                                  [--generate-input-file]
                                  [--aria2-rpc-url ARIA2_RPC_URL]
                                  [--aria2-rpc-secret ARIA2_RPC_SECRET]
        
        A simple, fast, and reliable Coursera crawling & downloading tool
        
        optional arguments:
          -h, --help            show this help message and exit
          --version             show program's version number and exit
          --email EMAIL
          --password PASSWORD
          --cookies COOKIES     path of the file which contains cookies in the Mozilla
                                `cookies.txt` file format
          --slug SLUG           slug of a course or a specializtion (with @--isSpec)
          --isSpec              indicate that @slug is slug of a specialization
          --n-worker N_WORKER   the number of threads used to crawl webpages. Default:
                                4. NOTE: if errors show up during crawling, try
                                decreasing this value
          --outdir OUTDIR       the directory to save files to. Default: `.'
          --how {builtin,curl,aria2,aria2-rpc,uget}
                                how to download files. builtin (NOT recommonded): use
                                the builtin downloader. curl: invoke the `curl' tool
                                or generate an "input file" for that tool (with
                                @--generate-input-file). aria2: invoke the `aria2c'
                                tool or generate an "input file" for that tool (with
                                @--generate-input-file). aria2-rpc (HIGHLY
                                recommonded): add downloading tasks to aria2 through
                                its XML-RPC interface. uget (recommonded): add
                                downloading tasks to the uGet Download Manager
          --generate-input-file
                                when @--how is curl/aria2, indicate that to generate
                                an "input file" for that tool, rather than to invoke
                                it
          --aria2-rpc-url ARIA2_RPC_URL
                                url of the aria2 XML-RPC interface. Default:
                                `http://localhost:6800/rpc'
          --aria2-rpc-secret ARIA2_RPC_SECRET
                                authorization token of the aria2 XML-RPC interface
        
        If the command succeeds, you shall see `Done :-)'. If some UNEXPECTED errors
        occur, try deleting everything generated by this tool in @outdir, and then run
        the command again. For more information, visit `https://github.com/feng-
        lei/dl_coursera'.
        ```
        
        ### How to know slug of a course/specialization
        
        Navigate to homepage of that course/specialization, you can see its slug at the address bar.
        
        ![](0.png)
        
        ### How to get the *cookies.txt* file
        
        Sign in to [Coursera](https://www.coursera.org/), then use a browser extension to export cookies as *cookies.txt*.
        
        #### Chrome
        
        You can use the [cookies.txt](https://chrome.google.com/webstore/detail/cookiestxt/njabckikapfpffapmjgojcnbfjonfjfg) extension.
        
        ![](3.png)
        
        #### Firefox
        
        You can use the [Export Cookies](https://addons.mozilla.org/en-US/firefox/addon/export-cookies-txt/?src=search) extension.
        
        ![](4.png)
        
        ## Examples
        
        > (**2019/08/30**) Since the login API of Coursera changed, you should not use `--email` and `--password` anymore, use `--cookies` instead. More specifically, use
        >
        > ```
        > $ dl_coursera --cookies path/of/cookies.txt ......
        > ```
        >
        > rather than
        >
        > ```
        > $ dl_coursera --email XXXXXX --password XXXXXX ......
        > ```
        
        ### using the builtin downloader
        
        ```
        $ dl_coursera --email XXXXXX --password XXXXXX --slug parallel-programming-in-java --outdir ppij --how builtin
        ```
        
        ### using curl
        
        ```
        $ dl_coursera --email XXXXXX --password XXXXXX --slug parallel-programming-in-java --outdir ppij --how curl
        ```
        
        or
        
        ```
        $ dl_coursera --email XXXXXX --password XXXXXX --slug parallel-programming-in-java --outdir ppij --how curl --generate-input-file
        
        $ curl --config ppij/parallel-programming-in-java.download.curl_input_file.txt
        ```
        
        ### using aria2
        
        ```
        $ dl_coursera --email XXXXXX --password XXXXXX --slug parallel-programming-in-java --outdir ppij --how aria2
        ```
        
        or
        
        ```
        $ dl_coursera --email XXXXXX --password XXXXXX --slug parallel-programming-in-java --outdir ppij --how aria2 --generate-input-file
        
        $ aria2c --input-file ppij/parallel-programming-in-java.download.aria2_input_file.txt
        ```
        
        ### adding tasks to aria2 through its XML-RPC interface
        
        Start aria2 with its XML-RPC interface enabled:
        
        ```
        $ aria2c --enable-rpc
        ```
        
        then type the following command in another terminal:
        
        ```
        $ dl_coursera --email XXXXXX --password XXXXXX --slug parallel-programming-in-java --outdir ppij --how aria2-rpc
        ```
        
        *NOTE*: using an aria2 GUI like [webui-aria2](https://github.com/ziahamza/webui-aria2) is highly recommended
        
        ![](1.png)
        
        ### adding tasks to the uGet Download Manager
        
        start uGet:
        
        ```
        $ uget        # on Windows
        $ uget-gtk &  # on Linux
        ```
        
        then type the following command:
        
        ```
        $ dl_coursera --email XXXXXX --password XXXXXX --slug parallel-programming-in-java --outdir ppij --how uget
        ```
        
        ![](2.png)
        
        
Keywords: dl_coursera,coursera,coursera-dl,download,education,MOOC
Platform: any
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Education
Requires-Python: >=3
Description-Content-Type: text/markdown
Provides-Extra: dev
