Open pyntel opened 2 years ago
I would like to report that I am also seeing this as well. For example, from a playlist of a series of videos titled "Jira Service Management: Administration" 34 of 42 videos failed to download.
yt-dlp -U
Latest version: 2022.02.04, Current version: 2022.02.04 yt-dlp is up to date (2022.02.04)
yt-dlp https://www.linkedin.com/learning/jira-service-management-administration/
Fails to download:
@pukkandan I noticed the "account-needed" label has been added to this. I read through the instructions but am not thrilled at the idea of sharing my account details. Is there a means to share account info effectively without exposing our creds to the general public? If it's any help, it is entirely possible to sign up for a free month of LinkedIn Learning. :man_shrugging:
@pyntel FYI, there is a workaround you can use, through a program called llvd. https://pypi.org/project/llvd/
It requires a bit of setup, but isn't too bad. The options are very limited, compared to yt-dlp, but it's better than nothing, I suppose.
@michael-hart-github thank you for that pointer.
The tool works but still does not download any video except for the 4 mentioned in the opening topic. The fun thing is though that LLVD does provide me with a more useful feedback in this error message: "This video is locked, you probably need a premium account."
Again, those videos play just fine from LinkedIn Learning's own website for me, so it has nothing to do with my account itself.
@pyntel Sorry to hear that!
I was looking through the github repo for llvd
and noticed an issue that was closed a while back: https://github.com/knowbee/llvd/issues/58
It sounds like some people have company-based accounts, and think that they are premium, but they might not actually be. (Crazy to think about, considering how much those companies must be paying!)
I really don't know why you would be getting that error message. If your account is company-based you might want to double-check what type of account you have:
My own account is on a free month trial - with the intent to expense it to my company - but not tied directly to a "Company Plan" or whatever LinkedIn Learning would call it. If you've got some kind of a group account, maybe it's an underlying problem. :thinking:
My settings don't show a specific account type like yours does but I know I'm on a company plan.
I'm confounded as to why that would lead to such differences in the performance and behaviour of two command-line download tools. But I guess it is the most likely reason.
I have the same issue and I can access the course and I've used a different application and it was able to download the whole course alright. I'm willing to share my account if needed.
edit: the other app uses linkedin's tokens which I've tried to replicate with yt-dlp but it didn't work
When wiil this be fixed please? I am trying to download linkedin learning course: https://www.linkedin.com/learning/python-quick-start/ and just 3 of 27 videos are available, on rest i get :
ERROR: [linkedin:learning] 2249818: No video formats found!; please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U [download] Downloading item 27 of 27. [linkedin:learning] Extracting URL: https://www.linkedin.com/learning/python-quick-start/next-steps [linkedin:learning] next-steps: Downloading 360p JSON metadata [linkedin:learning] next-steps: Downloading 540p JSON metadata [linkedin:learning] next-steps: Downloading 720p JSON metadata [info] 2248817: Downloading subtitles: en ERROR: [linkedin:learning] 2248817: No video formats found!; please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U [download] Finished downloading playlist: Python Quick Start
I am on the latest version of yt-dlp: yt-dlp is up to date (2023.02.17)
I have linkedIn premium account valid till 10th of march, so want to download some courses. Thank you very much in advance.
Today I tried with LLVD. Working perfectly. There've been just some connection errors and interruptions so needed the course download several times to complete.
You just need to give LLVD the proper arguments like here:
llvd -r 720 -ca --course "premiere-pro-2022-essential-training" --cookies
-r - is for resolutions -ca - captions, to dl with subtitles --course - name of the linkedIn course - slug - "premiere-pro-2022-essential-training" everything after https://www.linkedin.com/learning/ URL --cookies - u need to create cookies.txt in your destination, dowloading folder and put two lines into it: li_at=xxxxx JSESSIONID="ajax:xxxxxx", you will find those values from your browser developer tools (CTRL+SHIFT+I), under cookies->https://linkedin.com
full list of parameters can be found here: https://pypi.org/project/llvd/
Hope this helps and wishing you all a great day! :)
I'm using this command and it only downloads like 5 video successfully, then it errors out. I think this is because Linkedin Learning rate limits you to prevent scraping.
yt-dlp https://www.linkedin.com/learning/introduction-to-photography/ --cookies-from-browser vivaldi
Hello,
I'm with the version 2023.10.13 on Windows, and I still have the error "No video formats found!".
yt-dlp --continue --output "%(playlist_index)s - %(title)s.%(ext)s" --cookies-from-browser firefox --merge-output-format mkv --add-metadata --sleep-requests 5 --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0" --verbose "https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/"
[debug] Command-line config: ['--continue', '--output', '%(playlist_index)s - %(title)s.%(ext)s', '--cookies-from-browser', 'firefox', '--merge-output-format', 'mkv', '--add-metadata', '--sleep-requests', '5', '--user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0', '--verbose', 'https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/']
Extracting cookies from firefox
[debug] Extracting cookies from: "C:\Users\ilpla\AppData\Roaming\Mozilla\Firefox\Profiles\hk5lnvp4.default-release\cookies.sqlite"
Extracted 906 cookies from firefox
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.10.13 [b634ba742] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.22635-SP0 (OpenSSL 1.1.1k 25 Mar 2021)
[debug] exe versions: ffmpeg 5.0 (setts), ffprobe 6.0-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.19.0, brotli-1.1.0, certifi-2023.07.22, mutagen-1.47.0, sqlite3-3.35.5, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1890 extractors
[linkedin:learning:course] Extracting URL: https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/
[linkedin:learning:course] Downloading JSON metadata
[download] Downloading playlist: La sécurité informatique et cybersécurité : Niveau avancé
[linkedin:learning:course] Playlist La sécurité informatique et cybersécurité : Niveau avancé: Downloading 34 items of 34
[download] Downloading item 1 of 34
[linkedin:learning] Extracting URL: https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/bienvenue-dans-la-securite-informatique-et-cybersecurite-niveau-avance
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] bienvenue-dans-la-securite-informatique-et-cybersecurite-niveau-avance: Downloading 360p JSON metadata
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] bienvenue-dans-la-securite-informatique-et-cybersecurite-niveau-avance: Downloading 540p JSON metadata
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] bienvenue-dans-la-securite-informatique-et-cybersecurite-niveau-avance: Downloading 720p JSON metadata
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] bienvenue-dans-la-securite-informatique-et-cybersecurite-niveau-avance: Downloading m3u8 information
[debug] Sort order given by extractor: res, source_preference
[debug] Formats sorted by: hasvid, ie_pref, res, source, lang, quality, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] 2967451: Downloading 1 format(s): progressive-720p
[debug] Invoking http downloader on "https://dms.licdn.com/playlist/vid/C560DAQFS2loj-dQfCw/learning-original-video-vbr-720/0/1598815726614?e=1699538400&v=beta&t=KgdUyMsURmOLPtO4lUbRCAfXr4GhDlArK-cP9hdOpv4#.mp4"
[debug] File locking is not supported. Proceeding without locking
[download] Destination: 01 - Bienvenue dans « La sécurité informatique et cybersécurité : Niveau avancé ».mp4
[download] 100% of 11.18MiB in 00:00:04 at 2.64MiB/s
[Metadata] Adding metadata to "01 - Bienvenue dans « La sécurité informatique et cybersécurité : Niveau avancé ».mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel "repeat+info" -i "file:01 - Bienvenue dans « La sécurité informatique et cybersécurité : Niveau avancé ».mp4" -map 0 -dn -ignore_unknown -c copy -write_id3v1 1 -metadata "title=Bienvenue dans « La sécurité informatique et cybersécurité : Niveau avancé »" -metadata "date=19700101" -metadata "purl=https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/bienvenue-dans-la-securite-informatique-et-cybersecurite-niveau-avance" -metadata "comment=https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/bienvenue-dans-la-securite-informatique-et-cybersecurite-niveau-avance" -movflags "+faststart" "file:01 - Bienvenue dans « La sécurité informatique et cybersécurité : Niveau avancé ».temp.mp4"
[download] Downloading item 2 of 34
[linkedin:learning] Extracting URL: https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/etudier-les-phases-principales-d-une-attaque
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] etudier-les-phases-principales-d-une-attaque: Downloading 360p JSON metadata
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] etudier-les-phases-principales-d-une-attaque: Downloading 540p JSON metadata
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] etudier-les-phases-principales-d-une-attaque: Downloading 720p JSON metadata
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] etudier-les-phases-principales-d-une-attaque: Downloading m3u8 information
[debug] Sort order given by extractor: res, source_preference
[debug] Formats sorted by: hasvid, ie_pref, res, source, lang, quality, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] 2967452: Downloading 1 format(s): progressive-720p
[debug] Invoking http downloader on "https://dms.licdn.com/playlist/vid/C4E0DAQHTbgQccRYQNg/learning-original-video-vbr-720/0/1598785137690?e=1699538400&v=beta&t=FrD3MPYQQgGdceRtksCccIp5mfnevgyoo9cPPEB-bRE#.mp4"
[download] Destination: 02 - Étudier les phases principales d'une attaque.mp4
[download] 100% of 15.58MiB in 00:00:05 at 2.78MiB/s
[Metadata] Adding metadata to "02 - Étudier les phases principales d'une attaque.mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel "repeat+info" -i "file:02 - Étudier les phases principales d'une attaque.mp4" -map 0 -dn -ignore_unknown -c copy -write_id3v1 1 -metadata "title=Étudier les phases principales d'une attaque" -metadata "date=19700101" -metadata "purl=https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/etudier-les-phases-principales-d-une-attaque" -metadata "comment=https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/etudier-les-phases-principales-d-une-attaque" -movflags "+faststart" "file:02 - Étudier les phases principales d'une attaque.temp.mp4"
[download] Downloading item 3 of 34
[linkedin:learning] Extracting URL: https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/comprendre-les-etapes-d-exploitation-et-de-post-exploitation
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] comprendre-les-etapes-d-exploitation-et-de-post-exploitation: Downloading 360p JSON metadata
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] comprendre-les-etapes-d-exploitation-et-de-post-exploitation: Downloading 540p JSON metadata
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] comprendre-les-etapes-d-exploitation-et-de-post-exploitation: Downloading 720p JSON metadata
ERROR: [linkedin:learning] 2965074: No video formats found!; please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U
Traceback (most recent call last):
File "yt_dlp\YoutubeDL.py", line 1567, in wrapper
File "yt_dlp\YoutubeDL.py", line 2028, in __process_iterable_entry
File "yt_dlp\YoutubeDL.py", line 1835, in process_ie_result
File "yt_dlp\YoutubeDL.py", line 1782, in process_ie_result
File "yt_dlp\YoutubeDL.py", line 2751, in process_video_result
File "yt_dlp\YoutubeDL.py", line 1076, in raise_no_formats
yt_dlp.utils.ExtractorError: [linkedin:learning] 2965074: No video formats found!; please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U
[download] Downloading item 4 of 34
[linkedin:learning] Extracting URL: https://www.linkedin.com/learning/la-securite-informatique-et-cybersecurite-niveau-avance/introduire-les-methodes-d-evaluation-des-vulnerabilites
[linkedin:learning] Sleeping 5.0 seconds ...
[linkedin:learning] introduire-les-methodes-d-evaluation-des-vulnerabilites: Downloading 360p JSON metadata
[linkedin:learning] Sleeping 5.0 seconds ...
ERROR: Interrupted by user
I don't understand. I put the correct User-Agent and got the cookies from my browser.
Someone have a solution, or is it LinkedIn Learning who automatically blocks all the download requests from yt-dlp?
Checklist
Region
The Netherlands
Description
I get errors on some videos from a Linkedin Learning course. It says there are no video formats found. The videos play just fine when used through the Linkedin Learning website.
YT-DLP authentication for LinkedIn works fine (cookies, netrc, n2 setup). There's four videos that download just fine (apparently there are video formats found for those but not the others?). I get the same error both when calling the whole course URL and separate videos in the course. Both approaches throw the same error output listed below in the verbose log.
Direct links to the working videos: 01 - Welcome: https://www.linkedin.com/learning/learning-modular-synthesis/welcome 04 - Fundamental concept - Voltage control (CV + gate): https://www.linkedin.com/learning/learning-modular-synthesis/fundamental-concept-voltage-control-cv-gate 10 - Patching a typical synthesizer “voice”: https://www.linkedin.com/learning/learning-modular-synthesis/patching-a-typical-synthesizer-voice 27 - Exponential frequency modulation (FM): https://www.linkedin.com/learning/learning-modular-synthesis/exponential-frequency-modulation-fm
Direct link to the course URL/playlist: https://www.linkedin.com/learning/learning-modular-synthesis
Verbose log