Coder Social home page Coder Social logo

knowbee / llvd Goto Github PK

View Code? Open in Web Editor NEW
293.0 17.0 78.0 134 KB

Linkedin Learning Video Downloader

Home Page: https://pypi.org/project/llvd

License: MIT License

Python 99.48% Dockerfile 0.52%
linkedin linkedinlearning downloadervideo downloader download-videos

llvd's Introduction

Table of Contents

Downloads Open Source Love Open Source Love

Status Feature
cookie-based authentication
download by learning path
download a course and all its exercises
group videos by chapters
subtitles
nice progress bar
resume failed downloads
skip already downloaded videos
set video format (360p, 540p, 720p)
all platforms
$ pip --no-cache-dir install llvd

If you have multiple versions of python installed in your system, use pip3 instead.

$ pip3 --no-cache-dir install llvd

Running from local installation

llvd --help
llvd -c "course-slug" -r 720

Running from docker container

# You will need to either use `docker cp` to get the course or mount it when running.
docker run ghcr.io/knowbee/llvd:master -c "course-slug" -r 720

When you get 'llvd' is not recognized as an internal or external command after successfully installing llvd, run python3 -m llvd <flags>

  1. Click on the desired course
  2. Your URl will look something like, https://www.linkedin.com/learning/l-essentiel-d-asp-dot-net-core-pour-dot-net-5
    • The course slug is: l-essentiel-d-asp-dot-net-core-pour-dot-net-5
  1. Click on the options in Google Chrome (top right with 3 vertical dots).
  2. Click on More tools -> Developer tools
    • You can also reach here by using the keyboard combination: ctrl+shift+I).
  3. Now once you’ve gained access to the developer tools, navigate to the Application tab, and copy the value of two cookies named li_at and JSESSIONID
  4. Create a file named cookies.txt and place it in the folder you want to download your courses to
  5. Open the cookies.txt file and paste in the values of li_at and JSESSIONID
li_at=xxxxx
JSESSIONID="ajax:xxxxxx"

If you have a corporate connected account you can fix the download issue by using a headers.txt as per below.

  1. Create a file named headers.txt and place it in the folder you want to download your courses to
  2. Right click on the page and select view source
    • You can also reach here by using the keyboard combination: ctrl+U.
  3. Search for enterpriseProfileHash using ctrl+F
  4. enterpriseProfileHash&quot;:&quot;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&quot;,&quot; copy the code between the double &quot;
5. Open the `headers.txt` file and paste in the values of `x-li-identity` from the above.
x-li-identity=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 
$ llvd --help
$ llvd -c "course-slug" --cookies

Has to use cookies in conjection with headers

$ llvd -c "course-slug" --cookies --headers
$ llvd -c "course-slug" -r 720

Note: The default is set to 720.


    $ llvd -c "course-slug" --caption

or


    $ llvd -c "course-slug" -ca

To avoid rate limits because of downloading a lot of videos, use the following:

$ llvd -p "path-slug" -t 10,30

Igwaneza Bruce

llvd's People

Contributors

1zizi1 avatar akinuri avatar andrew-su avatar bigmadkev avatar dumindu-dev avatar joaofl avatar knowbee avatar leophys avatar mahmoudalsaman avatar michael-hart-github avatar note286 avatar pyy avatar saidabderrahmane avatar silverhairs avatar vgoebbels avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

llvd's Issues

Fix requests empty response

This results in llvd failing sometimes to download a video unless you keep retrying for a couple of times 🤦‍♂️

Your internet connection is slow

Hi,

I still reviced the message "Your internet connection is slow", and con't download nothing.

ping www.linkedin.com -t

Envoi d’une requête 'ping' sur www.linkedin.com [13.107.42.14] avec 32 octets de données :
Réponse de 13.107.42.14 : octets=32 temps=49 ms TTL=116
Réponse de 13.107.42.14 : octets=32 temps=41 ms TTL=116
Réponse de 13.107.42.14 : octets=32 temps=44 ms TTL=116
Réponse de 13.107.42.14 : octets=32 temps=40 ms TTL=116
Réponse de 13.107.42.14 : octets=32 temps=39 ms TTL=116
Réponse de 13.107.42.14 : octets=32 temps=43 ms TTL=116
Réponse de 13.107.42.14 : octets=32 temps=56 ms TTL=116

please help.

subtitles

Don't download subtitles.
Please add option to download subtitles.
Thank you

authentication "cookies.txt" process

Hello,

I am completely new to Python. Would it be possible to explain the steps for creating & saving the cookies.txt file? I'm using Chrome on Mac OS.

This is what I tried:

  1. [opened TextEdit > typed in values for JSESSION= & li_at= (on 1st line & 2nd line of text) > renamed the plain text file as cookies.txt > then, saved the cookies.txt to my Desktop].

  2. [opened Terminal App > entered llvd -c "photoshop-for-designers-working-with-shapes" -ca

  3. Do you want to login with cookies? [y/N]: y

  4. Error Msg (in red): cookies.txt must not be empty

Note: I also tried to run the code by entering my LinkedIn Learning School Organization credentials. This allowed for a few of the course videos to download—the rest of the videos showed a downloading error msg: This video is locked, you probably need a premium account.

Any feedback would be appreciated, thank you! & thank you for creating this! =)

Login via password error

Downloading courses via email and password doesn't work. I've rechecked using my credentials. Though, with cookies it works perfectly.

Cookie based authentication

Thank you so much for your contribution in this project, it's help a lot, we can't stay connect all day, we need to work anytime in the courses, it's possible to download the courses with cookie based authentication. All the best.

Video quality resolutions issues

Good Morning!
Firstly, thanks for the program, your time, your efforts:
Very helpful tool :)

I’ve encountered issues concerning video quality resolutions. By default it’s 720p, but using, for example, this following link: Advanced Drum Recording Session with Josh Freese
…the results are a mix of 540p and 720p, though all 540p still have their corresponding 720p versions available; I can even download them from the “Internet Download Manager” button through its browser extension.

I’ve also tried with another downloader LinkedIn Learning Courses Downloader Same results!
Any ideas on how to fix it ?
Thanks ;)

'llvd' is not recognized as an internal or external command

Pretty sure this is just me not knowing how to use the program. Nonetheless, here's my issue.

I have installed the package multiple times using the latest pip

C:\Users\rrosh>pip --no-cache-dir install llvd
Requirement already satisfied: llvd in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (2.1.1)
Requirement already satisfied: beautifulsoup4==4.9.3 in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from llvd) (4.9.3)
Requirement already satisfied: certifi==2020.12.5 in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from llvd) (2020.12.5)
Requirement already satisfied: chardet==4.0.0 in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from llvd) (4.0.0)
Requirement already satisfied: click==7.1.2 in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from llvd) (7.1.2)
Requirement already satisfied: idna==2.10 in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from llvd) (2.10)
Requirement already satisfied: requests==2.25.1 in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from llvd) (2.25.1)
Requirement already satisfied: soupsieve==2.1 in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from llvd) (2.1)
Requirement already satisfied: tqdm==4.55.0 in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from llvd) (4.55.0)
Requirement already satisfied: urllib3==1.26.2 in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from llvd) (1.26.2)
Requirement already satisfied: click_spinner==0.1.10 in c:\users\rrosh\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from llvd) (0.1.10)
WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: C:\Users\rrosh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\Include\UNKNOWN
sysconfig: C:\Users\rrosh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\Include
WARNING: Additional context:
user = True
home = None
root = None
prefix = None

However, after installation, command prompt is not recognizing llvd command. I'm getting below error.

C:\Users\rrosh>llvd --help
'llvd' is not recognized as an internal or external command,
operable program or batch file.

Can you please help me fix this? Your help is much appreciated.

not downloading

F:\New folder\1 Games\llvd-master>llvd -c "How to Motivate Yourself to Do What’s Most Important" -r 720 -ca
Do you want to login with cookies? [y/N]: y

'elements'
Poor network connection, try again .

i have 50 mbps connection.

The cookies file only have these two line correct
JSESSIONID=
li_at=

Speed

llvd should be faster

HTTPSConnectionPool(host='dms.licdn.com', port=443): Max retries exceeded with url

I started downloading some videos.... then I get this error message

HTTPSConnectionPool(host='dms.licdn.com', port=443): Max retries exceeded with url: /playlist/C4D0DAQFlJ5jiMxdvKQ/learning-original-video-vbr-720/0/1598841035324?e=1618750800&v=beta&t=mUNck_mtu2dc9dxNP-05lHD9U3aG9PpLY6cnlCvotZI (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000026707A5B1C0>: Failed to establish a new connection: [WinError 10060] Une tentative de connexion a échoué car le parti connecté n’a pas répondu convenablement au-delà d’une certaine durée ou une connexion établie a échoué car l’hôte de connexion n’a pas répondu'))
Failed to connect, try again later

Any idea guys ? thank you

Create folders and sub folders

Could you add an option to create automatically folders and subfolders? I mean, download a course into a folder with its name and every video into a folder with the chapther's name.
Your tool it's amazing. It's the best.
Thanks in advice.

Issue

Returns this message several times:
- You must have a premium account to download this course

And I need to restart the download again and again...

image

image

image

"This video is locked, you probably need a premium account", although I am logged in with a premium account

I am logged in with a premium account and able to view all course videos through the browser.
When I'm using the llvd I'm still getting "This video is locked, you probably need a premium account" for all the course chapters except for two. (intro and another one)
I tried both '--cookies' and username+pass, both give the same results.
Tried 360p, 540p and 720p, all give the same result.
Tried with and without captions, same result.
log.txt

Download multiple courses / learning paths

I want to define learning paths or multiple videos in a file and download them in one go.
Ex
{ "link1",
"link2",
... etc
}

or
{ "learning_path1",
"learning_path2",
...
etc
}

It is possible?

Is it still working or I did something wrong?

Tryed both methods and did't get any result. Can you help me please?
c:\Users\dyren\AppData\Local\Programs\Python\Python310\Scripts>llvd -c "engineering-drawings-for-manufacturing" -r 720 --cookies
Using cookie info from cookies.txt
Traceback (most recent call last):
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py", line 382, in _make_request
self._validate_conn(conn)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py", line 1010, in validate_conn
conn.connect()
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connection.py", line 411, in connect
self.sock = ssl_wrap_socket(
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\util\ssl
.py", line 428, in ssl_wrap_socket
ssl_sock = ssl_wrap_socket_impl(
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\util\ssl
.py", line 472, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\ssl.py", line 512, in wrap_socket
return self.sslsocket_class._create(
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\ssl.py", line 1070, in _create
self.do_handshake()
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\ssl.py", line 1341, in do_handshake
self._sslobj.do_handshake()
TimeoutError: [WinError 10060]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\adapters.py", line 439, in send
resp = conn.urlopen(
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py", line 755, in urlopen
retries = retries.increment(
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\util\retry.py", line 531, in increment
raise six.reraise(type(error), error, _stacktrace)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\packages\six.py", line 735, in reraise
raise value
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py", line 699, in urlopen
httplib_response = self._make_request(
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py", line 385, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py", line 336, in _raise_timeout
raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www.linkedin.com', port=443): Read timed out. (read timeout=None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\llvd\app.py", line 160, in download_entire_course
r = requests.get(config.course_url.format(
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\adapters.py", line 529, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.linkedin.com', port=443): Read timed out. (read timeout=None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "c:\Users\dyren\AppData\Local\Programs\Python\Python310\Scripts\llvd-script.py", line 33, in
sys.exit(load_entry_point('llvd==3.0.1', 'console_scripts', 'llvd')())
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py", line 829, in call
return self.main(*args, **kwargs)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\llvd_init_.py", line 75, in main
llvd.run(cookie_dict)
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\llvd\app.py", line 62, in run
self.download()
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\llvd\app.py", line 119, in download
self.download_entire_course()
File "C:\Users\dyren\AppData\Local\Programs\Python\Python310\lib\site-packages\llvd\app.py", line 241, in download_entire_course
if os.path.exists(f'{self.chapter_path}/{self.current_video_index:0=2d}-{clean_name(self.current_video_name)}.mp4'):
TypeError: unsupported format string passed to NoneType.format

subtitle

Error: no such option: --caption

with -ca flag return this message: You must have a premium account to download this course

without -ca flag download works fine

Get Cookie Error

Hey,

Thanks for making wonderful program but when I run it, it gives cookie related error:
'Your cookie is expired'

Based on your instruction I did everything exactly (also read your blog post).

  1. I use windows and Python3 (using pip3) and use cookie based login

FYI: I noticed you asked to copy this cookie:
li_at
whereas Linkined gives cookie with name of:
lidc

so I tried both ways by using your given cookie name and the one which I get at my end.
It doesn't work in either ways. I also attached the screenshot of cookies which I get:
https://i2.paste.pics/aedc31c210c7871404060384bfd881e5.png

FYI: I've Library card account and hope cookie based login must work with it.

Failed to connect

Hi, thank you for your tool, I'm trying to use it, but I keep getting "Failed to connect, try again later"
Could you help me ?
Thank you

cannot download, "video is locked" error

couse slug:
onenote-2016-essential-training
llvd can only download the first video of the chapter, and all others gives need premium account error.

Please help!

Add summary at the end of downloads

Since it happens sometimes that some videos/courses are not available at a certain time, a summary at the end of downloads would be helpful. This could list the number of courses (when downloading learing paths), the number of videos downloaded, the ones missing, and the ones that already were present.

Error during install

I am getting the following error while installing with pip3.

pip3 --no-cache-dir install llvd

The error:

`Collecting llvd
Downloading https://files.pythonhosted.org/packages/e2/f9/da6d3ef0cf382de3f3f55ddeb8585b97d108dd43b0e9ed2ad3f4c52ec3a9/llvd-2.1.1.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-build-603isxv1/llvd/setup.py", line 7, in
readme = f.read()
File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 631: ordinal not in range(128)

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-603isxv1/llvd/`

'llvd' is a package and cannot be directly executed

llvd is installed successfully but when running the command, it gives this error

C:\Users\user>python -m llvd --help
C:\Users\user\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe: No module named llvd.main; 'llvd' is a package and cannot be directly executed

Please help me with this

Exceeded 30 redirects.

When I try to download any course I get this error just after running : llvd -c "course-url" -r 720

$ llvd -c "programming-foundations-algorithms" -r 720
Do you want to login with cookies? [y/N]: y

Exceeded 30 redirects.
Failed to connect, try again later

[Feature request]:specifying the video resolution

Currently llvd defaults to 360 video resolution and that is not great. A user should be given the ability to set video format to download a course from.

Example :llvd --course "Course Title" --format 720
Supported formats should be: 360p, 540p, 720p

llvd failed to download a number of videos - LinkedIn Learning restriction?

URL
https://www.linkedin.com/learning/linux-tips-weekly/

Command run
llvd -c "linux-tips-weekly" -t 5,10

Errors observed

Failed to download Migrating to a new distro
Failed to download Planning a portable bootable disk
Failed to download Creating a portable bootable disk
Failed to download Host your own Apache web server
Failed to download Set up Let’s Encrypt on a web server
Failed to download Host a personal cloud with Nextcloud
Failed to download Hosting email services
Failed to download Set up a print server with CUPS
Failed to download Create a network PDF printer
Failed to download Remote logging with Rsyslog
Failed to download Set up a Git server
Failed to download NGINX web server
Failed to download Share files with a Samba server
Failed to download Set up an NFS server
Failed to download Monitoring your server
Failed to download Exploring Internet Relay Chat (IRC)

The full output is rather long, I've attached it in a text file.
llvd-error.txt

Attempted solutions
Re-run the command, increase the throttle.
llvd -c "linux-tips-weekly" -t 30,120

Results
I'm still seeing errors. It looks like each time I run the command, some of the videos llvd missed on previous attempts is now able to be downloaded. Strange.
llvd-error-2.txt

I'm not sure if this is a problem with llvd, or LinkedIn Learning itself. I suspect it might be a problem with LinkedIn Learning (maybe content was removed by the author, but perhaps llvd still detects it?) Whatever the case, I thought it would be helpful to report.

Cheers. Love the software! :)

Logging in problem

I saved the config with email and password fields filled, then installed llvd.

Problem is, when I run the app with command it asks for email and password and there's no way to enter password, because input accept nothing.

Requests / bugs

Hi! Really liking this tool, thanks a lot for making it. Just a few observations:

  1. It would be great if the topic folders would be numbered like in the content overview (for example> '1. Overview', '2. Subtopic X', etc.).

  2. When exercise files are already in the folder, it will download them again. Maybe have the option to skip already downloaded files.

  3. If a video has only been partially downloaded (maybe due to an error), it will skip it. I don't know if you have a good way to compare filesizes so that incomplete videos will be redownloaded.

  4. I am downloading the course 'Deke's Techniques' and the ' in the course name threw n error. It tried a few things and it finally worked with 'Deke-s techniques'.

Thanks!

Add support for 429 HTTP responses

LinkedIn Learning responses with a 429 HTTP error that means too many requests. That happens when we download many videos from the website. When that happens llvd shows a message like "That course is not found" that is not correct. It'd be good to show a correct message according to the response.

Error fetching courses from learning path! | [Errno 2] No such file or directory

After update I cant download anything

[ludwik@ludwik ~]$ bash bash.sh
Using cookie info from cookies.txt
Downloading 9 courses from learning-path: master-the-fundamentals-of-ai-and-machine-learning


Downloading course 1/9: ai-accountability-essential-training

Current: 01-Introduction/01-Accountable artificial intelligence.mp4 @720p
Error fetching courses from learning path!
[Errno 2] No such file or directory: './ai-accountability-essential-training/01-Introduction/01-Accountable artificial intelligence.mp4'

Bash script:

mkdir "/home/ludwik/Desktop/courses/Master the Fundamentals of AI and Machine Learning"
cp "/home/ludwik/Desktop/courses/cookies.txt" "/home/ludwik/Desktop/courses/Master the Fundamentals of AI and Machine Learning"
cd "/home/ludwik/Desktop/courses/Master the Fundamentals of AI and Machine Learning"
llvd -p "master-the-fundamentals-of-ai-and-machine-learning" -r 720 --cookies -t 10
rm cookies.txt

cant install

C:\Users\Dragoon\Downloads\Compressed\Wagakki Band - Vocalo Zanmai\llvd-master>$ pip --no-cache-dir install llvd
'$' is not recognized as an internal or external command,
operable program or batch file.

Not an issue, a request

I'd like to request you to create a script to download courses from Domestika and Crehana. I know it could be pretty hard, but probably you could do that. I don't have any skills to code, and that's why I just bother people to do what I can't.

Thanks in advice. :)

Requirement Already Satisfied

After running the install command for llvd I receive:

Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: llvd in ./Library/Python/3.8/lib/python/site-packages (2.2.6)
Requirement already satisfied: beautifulsoup4==4.9.3 in ./Library/Python/3.8/lib/python/site-packages (from llvd) (4.9.3)
Requirement already satisfied: tqdm==4.55.0 in ./Library/Python/3.8/lib/python/site-packages (from llvd) (4.55.0)
Requirement already satisfied: click-spinner==0.1.10 in ./Library/Python/3.8/lib/python/site-packages (from llvd) (0.1.10)
Requirement already satisfied: idna==2.10 in ./Library/Python/3.8/lib/python/site-packages (from llvd) (2.10)
Requirement already satisfied: click==7.1.2 in ./Library/Python/3.8/lib/python/site-packages (from llvd) (7.1.2)
Requirement already satisfied: urllib3==1.26.2 in ./Library/Python/3.8/lib/python/site-packages (from llvd) (1.26.2)
Requirement already satisfied: chardet==4.0.0 in ./Library/Python/3.8/lib/python/site-packages (from llvd) (4.0.0)
Requirement already satisfied: requests==2.25.1 in ./Library/Python/3.8/lib/python/site-packages (from llvd) (2.25.1)
Requirement already satisfied: certifi==2020.12.5 in ./Library/Python/3.8/lib/python/site-packages (from llvd) (2020.12.5)
Requirement already satisfied: soupsieve==2.1 in ./Library/Python/3.8/lib/python/site-packages (from llvd) (2.1)

Ft:batch script for windows

For now, the installation script is for linux based systems. It would be great if llvd supported windows too

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.