[linkedin:learning] can't download second section

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2019.03.09. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2019.03.09

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones
[x] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
youtube-dl --proxy REDACTED@gmail.REDACTED@REDACTED.com:80 \
--username<EMAIL_ADDRESS>--password REDACTED \
-f 'bestvideo[height<=720]+bestaudio/best[height<=720]' \
-o '%(playlist_title)s/Lesson %(chapter_number)02d - %(chapter)s/%(playlist_index)s - %(title)s.%(ext)s' --restrict-filenames --verbose --add-metadata --write-sub --limit-rate 2M --min-sleep-interval 5 --max-sleep-interval 10 \
"https://www.linkedin.com/learning/photoshop-cc-2018-essential-training-the-basics"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'--proxy', u'REDACTED@gmail.com:REDACTED@REDACTED.com:80', u'--username', u'PRIVATE', u'--password', u'PRIVATE', u'-f', u'bestvideo[height<=720]+bestaudio/best[height<=720]', u'-o', u'%(playlist_title)s/Lesson %(chapter_number)02d - %(chapter)s/%(playlist_index)s - %(title)s.%(ext)s', u'--restrict-filenames', u'--verbose', u'--add-metadata', u'--write-sub', u'--limit-rate', u'2M', u'--min-sleep-interval', u'5', u'--max-sleep-interval', u'10', u'https://www.linkedin.com/learning/photoshop-cc-2018-essential-training-the-basics']
[debug] Encodings: locale ANSI_X3.4-1968, fs ANSI_X3.4-1968, out ANSI_X3.4-1968, pref ANSI_X3.4-1968
[debug] youtube-dl version 2019.03.09
[debug] Python version 2.7.15rc1 (CPython) - Linux-4.15.0-46-generic-x86_64-with-Ubuntu-18.04-bionic
[debug] exe versions: ffmpeg 3.4.4, ffprobe 3.4.4
[debug] Proxy map: {u'http': u'REDACTED@gmail.com:REDACTED@REDACTED.com:80', u'https': u'REDACTED@gmail.com:REDACTED@REDACTED.com:80'}
[linkedin:learning:course] Downloading login page
[linkedin:learning:course] Logging in
[linkedin:learning:course] Downloading JSON metadata
[download] Downloading playlist: Photoshop CC 2018 Essential Training: The Basics
[linkedin:learning:course] playlist Photoshop CC 2018 Essential Training: The Basics: Collected 63 video ids (downloading 63 of them)
[download] Downloading video 1 of 63
[linkedin:learning] Downloading login page
[linkedin:learning] Logging in
[linkedin:learning] welcome: Downloading 360p JSON metadata
[linkedin:learning] welcome: Downloading 540p JSON metadata
[linkedin:learning] welcome: Downloading 720p JSON metadata
[linkedin:learning] welcome: Downloading m3u8 information
[debug] Invoking downloader on u'https://files3.lynda.com/secure/courses/625922/VBR_MP4h264_main_HD720/625922_00_01_WX30_welPSE.mp4?bZylE9zHX0NXuLt37pG5nguuMkfIbHyoUxOhh_NxW9t6Jcia74AuY3g8RvnSuNSTU9chCakoiJDJy1WIXJTnQ9ykPGWvquamgnYYZowPynjIMJL3z0bZijOTAP_GrQN9Hmtwg4-2D2Ybd6HyvoZTWUSD3MAWyCz1IOObmmPdmmubGNRCS0sI1g'
[download] Sleeping 7.10 seconds...
[download] Destination: Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/01 - Welcome.mp4
[download] 100% of 7.45MiB in 00:03
[ffmpeg] Adding metadata to 'Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/01 - Welcome.mp4'
[debug] ffmpeg command line: ffmpeg -y -loglevel 'repeat+info' -i 'file:Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/01 - Welcome.mp4' -c copy -metadata 'date=20171005' -metadata 'purl=https://www.linkedin.com/learning/photoshop-cc-2018-essential-training-the-basics/welcome' -metadata 'title=Welcome' 'file:Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/01 - Welcome.temp.mp4'
[download] Downloading video 2 of 63
[linkedin:learning] what-you-should-know: Downloading 360p JSON metadata
[linkedin:learning] what-you-should-know: Downloading 540p JSON metadata
[linkedin:learning] what-you-should-know: Downloading 720p JSON metadata
[linkedin:learning] what-you-should-know: Downloading m3u8 information
[debug] Invoking downloader on u'https://files3.lynda.com/secure/courses/625922/VBR_MP4h264_main_HD720/625922_00_02_XR30_whatKnow.mp4?a3tBiueHfR3hvgwkhccZuVyQ_2sulkhNy1CdbY5MjCeQsMZPLF0BoHJsd7Zr1K0uxIRDV2JrYHaAIsDL9S6km_xwTWbsIT0iYqFpk1FJ3QFxEOKYcVWLqYtEz_fH6RtrWKQDhdKehNNsRSupcDy6_5EWgMP8Tst1ctaR9sGNXfII-Ub7ZPsazryX'
[download] Sleeping 6.67 seconds...
[download] Destination: Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/02 - What_you_should_know.mp4
[download] 100% of 661.78KiB in 00:00
[ffmpeg] Adding metadata to 'Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/02 - What_you_should_know.mp4'
[debug] ffmpeg command line: ffmpeg -y -loglevel 'repeat+info' -i 'file:Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/02 - What_you_should_know.mp4' -c copy -metadata 'date=20171005' -metadata 'purl=https://www.linkedin.com/learning/photoshop-cc-2018-essential-training-the-basics/what-you-should-know' -metadata 'title=What you should know' 'file:Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/02 - What_you_should_know.temp.mp4'
[download] Downloading video 3 of 63
[linkedin:learning] using-the-exercise-files: Downloading 360p JSON metadata
[linkedin:learning] using-the-exercise-files: Downloading 540p JSON metadata
[linkedin:learning] using-the-exercise-files: Downloading 720p JSON metadata
[linkedin:learning] using-the-exercise-files: Downloading m3u8 information
[debug] Invoking downloader on u'https://files3.lynda.com/secure/courses/625922/VBR_MP4h264_main_HD720/625922_00_03_XR15_exFiles_519289.mp4?Y8vBhw2GaHpZH0vNNy029jVen0P54ARnb9jrCfBuF4h81i6bDDhWBnw3C8r2DbhErJwnT3phpJ2tZklkePg72Gdk9dSeG3Pgo-ZwujwgU6qi7uAX05-7QoxieTafN9lZTXve_1lfRPip_oCG3OlCXbfd8UOmPK1x0yW6RR-bm_neTDoWOB8DcGJNYGbK_g8y'
[download] Sleeping 7.69 seconds...
[download] Destination: Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/03 - Using_the_exercise_files.mp4
[download] 100% of 558.49KiB in 00:00
[ffmpeg] Adding metadata to 'Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/03 - Using_the_exercise_files.mp4'
[debug] ffmpeg command line: ffmpeg -y -loglevel 'repeat+info' -i 'file:Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/03 - Using_the_exercise_files.mp4' -c copy -metadata 'date=20171005' -metadata 'purl=https://www.linkedin.com/learning/photoshop-cc-2018-essential-training-the-basics/using-the-exercise-files' -metadata 'title=Using the exercise files' 'file:Photoshop_CC_2018_Essential_Training_-_The_Basics/Lesson 01 - Introduction/03 - Using_the_exercise_files.temp.mp4'
[download] Downloading video 4 of 63
[linkedin:learning] opening-documents-in-photoshop: Downloading 360p JSON metadata
[linkedin:learning] opening-documents-in-photoshop: Downloading 540p JSON metadata
[linkedin:learning] opening-documents-in-photoshop: Downloading 720p JSON metadata
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 794, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 522, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/linkedin.py", line 126, in _real_extract
    self._sort_formats(formats, ('width', 'height', 'source_preference', 'tbr', 'abr'))
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 1319, in _sort_formats
    raise ExtractorError('No video formats found')
ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
The formatting of the playlist_title is changed. The same with the title it didn't always give you underscores in the filenames, just spaces. (Photoshop_CC_2018_Essential_Training_-_The_Basics) But the main issue is that it seems to download the first "section" of the videos just fine. But as soon as the new section begins it spits out this error.

I can reproduce the same behaviour with the same exact failure message. The reason why some "sections" succeed at first and later others don't is because youtube-dl successfully downloads the videos available without subscription (the first half of the first chapter, usually about 4-6 videos). The failure happens with the first video that requires subscription.
I can reproduce the same behaviour both using user:pass authentication and using --cookie to load a cookie.txt file. This started happening 2 weeks ago.

I have an account on linkedin:learning. So it's not because I'm trying to grab them "for free" it has worked fine in the past.

We're both saying the same thing. Even with a valid subscription, it's no longer possible to download the videos that require subscription - that's the bug. It started happening around the beginning of this month.

an account is needed to check the issue and make a fix for the problem if it's caused by youtube-dl.

@remitamine I have send you a email.

FYI, for no apparent reason, the problem is no longer reproducible using youtube-dl version 2019.03.09.
$ youtube-dl l --cookies=cookies.txt https://www.linkedin.com/learning/solidworks-advanced-sketching/belt-chain
[linkedin:learning] belt-chain: Downloading 360p JSON metadata
[linkedin:learning] belt-chain: Downloading 540p JSON metadata
[linkedin:learning] belt-chain: Downloading 720p JSON metadata
[linkedin:learning] belt-chain: Downloading m3u8 information
[download] Destination: Belt Chain-5010767.mp4
[download]  21.7% of 7.21MiB at 542.19KiB/s ETA 00:10

I've tested multiple courses. Working as expected.

I can't even login now.....
[linkedin:learning] Logging in
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/local/bin/youtube-dl/__main__.py", line 19, in <module>
  File "/usr/local/bin/youtube-dl/youtube_dl/__init__.py", line 472, in main
  File "/usr/local/bin/youtube-dl/youtube_dl/__init__.py", line 462, in _real_main
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2006, in download
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 805, in extract_info
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1004, in process_ie_result
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 871, in process_ie_result
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 794, in extract_info
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 521, in extract
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 425, in initialize
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/linkedin.py", line 65, in _real_initialize
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 786, in _download_webpage
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 652, in _download_webpage_handle
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 619, in _request_webpage
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2225, in urlopen
  File "/usr/lib/python2.7/urllib2.py", line 421, in open
    protocol = req.get_type()
  File "/usr/lib/python2.7/urllib2.py", line 283, in get_type
    raise ValueError, "unknown url type: %s" % self.__original
ValueError: unknown url type: /checkpoint/lg/login-submit

I'm also getting the same unknown url type: /checkpoint/lg/login-submit when manually providing the authentication credentials and I'm getting the following output when using cookies:
$ youtube-dl --cookies=cookies.txt https://www.linkedin.com/learning/solidworks-advanced-sketching --verbose
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--cookies=cookies.txt', 'https://www.linkedin.com/learning/solidworks-advanced-sketching', '--verbose']
[debug] Encodings: locale cp1252, fs mbcs, out cp1252, pref cp1252
[debug] youtube-dl version 2019.03.09
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.17763
[debug] exe versions: none
[debug] Proxy map: {}
ERROR: An extractor error has occurred. (caused by KeyError('JSESSIONID',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpy110f8qy\build\youtube_dl\extractor\common.py", line 522, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpy110f8qy\build\youtube_dl\extractor\linkedin.py", line 157, in _real_extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpy110f8qy\build\youtube_dl\extractor\linkedin.py", line 34, in _call_api
KeyError: 'JSESSIONID'
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpy110f8qy\build\youtube_dl\extractor\common.py", line 522, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpy110f8qy\build\youtube_dl\extractor\linkedin.py", line 157, in _real_extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpy110f8qy\build\youtube_dl\extractor\linkedin.py", line 34, in _call_api
KeyError: 'JSESSIONID'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpy110f8qy\build\youtube_dl\YoutubeDL.py", line 794, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpy110f8qy\build\youtube_dl\extractor\common.py", line 535, in extract
youtube_dl.utils.ExtractorError: An extractor error has occurred. (caused by KeyError('JSESSIONID',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

It looks like the extractor needs to call the  /checkpoint/enterprise/login URL

Very odd. It's still working as expected for me.
Here's what I do:

Install cookies.txt extension.

Login to LinkedIn Learning using the browser normally.

Use the cookies.txt extension to get the Netscape-format cookie dump.

Paste it into cookies.txt file.

Run youtube-dl with --cookies param.

λ youtube-dl --verbose --cookies cookies.txt https://www.linkedin.com/learning/solidworks-advanced-sketching/belt-chain
[debug] System config: []
[debug] User config: ['-f', 'bestvideo[height<=720]+bestaudio/best[height<=720]', '--no-mtime']
[debug] Custom config: []
[debug] Command-line args: ['--verbose', '--cookies', 'cookies.txt', 'https://www.linkedin.com/learning/solidworks-advanced-sketching/belt-chain']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2019.03.09
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.17134
[debug] exe versions: ffmpeg 4.1.1, ffprobe 4.1.1, phantomjs 2.1.1
[debug] Proxy map: {}
[linkedin:learning] belt-chain: Downloading 360p JSON metadata
[linkedin:learning] belt-chain: Downloading 540p JSON metadata
[linkedin:learning] belt-chain: Downloading 720p JSON metadata
[linkedin:learning] belt-chain: Downloading m3u8 information
[debug] Invoking downloader on 'https://files3.lynda.com/secure/courses/728390/VBR_MP4h264_main_HD720/728390_01_05_3D15_belt.mp4?[redacted]'
[download] Resuming download at byte 261120
[download] Destination: Belt Chain-5010767.mp4
[download]  10.4% of 7.21MiB at 432.46KiB/s ETA 00:15

@MatthewJohnSymons Your error is very likely pointing to an empty or malformed cookies.txt file.

I get this when using cookie.txt extension:
# HTTP Cookie File by Genuinous @genuinous.
# No cookies for linkedin.com.
# Download all cookies.

Even with the new release of youtube-dl I still can't login. How do I get the cookies exported @adiov ?

@adiov thanks for instruction. I tried like you wrote and have this
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/__init__.py", line 472, in main
    _real_main(argv)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/__init__.py", line 462, in _real_main
    retcode = ydl.download(all_urls)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 2006, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 794, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 522, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/linkedin.py", line 95, in _real_extract
    course_slug, 'selectedVideo', video_slug, height)['selectedVideo']
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/linkedin.py", line 34, in _call_api
    'Csrf-Token': self._get_cookies(api_url)['JSESSIONID'].value,
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 2778, in _get_cookies
    return compat_cookies.SimpleCookie(req.get_header('Cookie'))
  File "/usr/lib/python2.7/Cookie.py", line 583, in __init__
    if input: self.load(input)
  File "/usr/lib/python2.7/Cookie.py", line 643, in load
    for k, v in rawdata.items():
AttributeError: 'unicode' object has no attribute 'items'

I am also have this when I try to login without cookies
ValueError: unknown url type: /checkpoint/lg/login-submit

Guys. I am sorry for bothering again. But we are talking here about biggest e-learning website on the Planet. Can we please fix it?

I can still confirm that it's working like a charm for me with a cookie file. There doesn't seem to be a problem with the extracting logic.
Just find an extension that exports cookies as Netscape HTTP Cookie File format. Both EditThisCookie and cookies.txt work for this purpose. For EditThisCookie, make sure you configure the correct format in the extension's settings. Also just follow common sense; check if your cookie file is not actually empty, it's not corrupted, it contains .linkedin.com cookies, etc.
I can't test using user:pass login anyway because I have 2FA on my account.

@adiov like I wrote, I did yoyr instructions. I got this error
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/__init__.py", line 472, in main
    _real_main(argv)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/__init__.py", line 462, in _real_main
    retcode = ydl.download(all_urls)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 2006, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 794, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 522, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/linkedin.py", line 95, in _real_extract
    course_slug, 'selectedVideo', video_slug, height)['selectedVideo']
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/linkedin.py", line 34, in _call_api
    'Csrf-Token': self._get_cookies(api_url)['JSESSIONID'].value,
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 2778, in _get_cookies
    return compat_cookies.SimpleCookie(req.get_header('Cookie'))
  File "/usr/lib/python2.7/Cookie.py", line 583, in __init__
    if input: self.load(input)
  File "/usr/lib/python2.7/Cookie.py", line 643, in load
    for k, v in rawdata.items():
AttributeError: 'unicode' object has no attribute 'items'Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/__init__.py", line 472, in main
    _real_main(argv)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/__init__.py", line 462, in _real_main
    retcode = ydl.download(all_urls)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 2006, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 794, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 522, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/linkedin.py", line 95, in _real_extract
    course_slug, 'selectedVideo', video_slug, height)['selectedVideo']
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/linkedin.py", line 34, in _call_api
    'Csrf-Token': self._get_cookies(api_url)['JSESSIONID'].value,
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 2778, in _get_cookies
    return compat_cookies.SimpleCookie(req.get_header('Cookie'))
  File "/usr/lib/python2.7/Cookie.py", line 583, in __init__
    if input: self.load(input)
  File "/usr/lib/python2.7/Cookie.py", line 643, in load
    for k, v in rawdata.items():
AttributeError: 'unicode' object has no attribute 'items'

Post the full content of your LinkedIn cookie file here. Make sure to replace tokens and IDs with similar strings to protect your account.

I made it with mentioned session.txt extention
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This is a generated file!  Do not edit.

.ads.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	BizoID	29e0f245-e5aa-4950-b942-592be382df68
.linkedin.com	TRUE	/	FALSE	0	AMCVS_14215E3D5995C57C0A495C55%40AdobeOrg	1
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	AMCV_14215E3D5965C57C0A495C55%40AdobeOrg	-1303530583%7CMCIDTS%7C17975%7CMCMID%7C65462992821382487824435318499002747831%7CMCAAMLH-1553604494%7C6%7CMCAAMB-1553604494%7CRKhpRz8krg2tLO6pguXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y%7CMCOPTOUT-1553006894s%7CNONE%7CMCCIDH%7C1396832739%7CvVersion%7C3.3.0
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	UserMatchHistory	AQK9auQm3dzIegAAAVmV_qwYw1_Kl8MnZeoE2tceGtDtfxo1YifjHODfUcKqOpW1S-nrh2HNghDfAQbZ8Lev9N5jewLov2JYLe8gih76eEhQ-BFsZad7IC39kN34PXmqkJI-xW2aGhagVhuEkXJrADDnULHwo_k-I35JPyo56UgLoTJfWNx9wNtuDK2OVkzqZOTwW27M6F7tL5R3lC4meamr0IDCberLQvQO
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	_ga	GA1.2.1759918566.1552055390
.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	_guid	9a26453d-7da9-481b-a386-6804c146636b
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	_lipt	CwEAAAFplf1hxakAO0cZUuo8-NleY_xKfs9rvnpVXUIqw6D3zWQBXxMSZ3DWcu7XUW-yTUT6pg0DWZuXCqQOa5JvjbTeQ75LAncw3PEUWwsEDJQMU3aF8melanImdAPETe5uwGNREwFZ2RAamV5I6jtwzNDMhiWrPy_iauUcZhj4n_WNwDT8sgHnbpWeR-3bsKygHeeI-zEH8CQ
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	aam_uuid<PHONE_NUMBER>5012529974414167070933383292
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	bcookie	"v=2&83a2b48c-4b05-41fa-8cca-0ac39eeecde1"
.linkedin.com	TRUE	/	FALSE	0	lang	v=2&lang=en-us
.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	li_oatml	AQFZE3-yR-Y4RgAAAWldtdD-vLD0oso1AuCxnrh0DjTrhCrfCvM83rmnuhtMnpm6IZzjvzjTPPazg0eESNiMIHOnN5VpqJDl
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	liap	true
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	lidc	"b=OGST02:g=1261:u=1:i=1553000249:t=1553086649:s=AQFcC0ANDxReuQTSpqcFhDJiAdwb4Oel"
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	utag_main	v_id:01695db5f0d3003f3540fdaf036e02085003d07d00bd0$_sn:9$_se:10$_ss:0$_st:1553002048613$vapi_domain:linkedin.com$ses_id:1552999692843%3Bexp-session$_pn:4%3Bexp-session
.www.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	JSESSIONID	"ajax:2474229762557477841"
.www.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	bscookie	"v=1&201902081426248bc8982f-1b29-4c7c-8d22-cfc14bfc8ab6AQE6lkmkJtciovacXao4TgXwUZdDEsoq"
.www.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	li_at	AQEDASrcCC0Bc4uaAAABaV46wt8AAAFpugscwU4AkbDPWpLKQNI9JHdfiISDA2Nd95KzWEHWWwGf2BmWoPwyFtLpL15mWrzGjhGsGvDNwv5soxYQYfyo12mvihP3DSVBd55O_JLC5YGiYLMHn-shCa6C
.www.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	sl	"v=1&4nsYL"
www.linkedin.com	FALSE	/	FALSE	0	lil-lang	en_US

Could it because I tried to update youtube-dl with pip?

First of all, if this is your unmodified cookie file, logout and login to your LinkedIn account now! You need those session tokens regenerated so your account isn't taken over.
The problem is pretty clear. I'm not sure if this is due to the way you're copying or some other reason, but both your cookie file output and the stacktrace you pasted above shows that there are syntax errors. Whatever is happening with your cookie export extension, it seems to be doing an HTML encoding on the output.
What you need to do is modify your cookie file and replace " with " and & with &. If you're handy with bash, you can do it with sed or something like that. Otherwise, you can do it with Notepad++ or any similar text editor.

I tried to replace as you told, it didn't help.
I am using Ubuntu 16.04, extention that you reccomend

I am not sure what else could be wrong.

 Who made this?

having the same issue here, i run the command youtube-dl -v --cookies cookies.txt "https://www.linkedin.com/learning/solidworks-advanced-sketching/belt-chain"
and get the output
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'--cookies', u'cookies.txt', u'https://www.linkedin.com/learning/solidworks-advanced-sketching/belt-chain']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.03.18
[debug] Python version 2.7.15 (CPython) - Darwin-18.2.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.1, ffprobe 4.1
[debug] Proxy map: {}
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/youtube_dl/__init__.py", line 472, in main
    _real_main(argv)
  File "/usr/local/lib/python2.7/site-packages/youtube_dl/__init__.py", line 462, in _real_main
    retcode = ydl.download(all_urls)
  File "/usr/local/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 2006, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "/usr/local/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 794, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python2.7/site-packages/youtube_dl/extractor/common.py", line 529, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/lib/python2.7/site-packages/youtube_dl/extractor/linkedin.py", line 95, in _real_extract
    course_slug, 'selectedVideo', video_slug, height)['selectedVideo']
  File "/usr/local/lib/python2.7/site-packages/youtube_dl/extractor/linkedin.py", line 34, in _call_api
    'Csrf-Token': self._get_cookies(api_url)['JSESSIONID'].value,
  File "/usr/local/lib/python2.7/site-packages/youtube_dl/extractor/common.py", line 2816, in _get_cookies
    return compat_cookies.SimpleCookie(req.get_header('Cookie'))
  File<EMAIL_ADDRESS>line 583, in __init__
    if input: self.load(input)
  File<EMAIL_ADDRESS>line 643, in load
    for k, v in rawdata.items():
AttributeError: 'unicode' object has no attribute 'items'

Exactly. Both methods doesn't work - email:pass & cookie

@eliadjoke Could you please also share the content of your cookies.txt? The 'unicode' object has no attribute 'items' error strongly points to your cookies.txt being malformed. Please be sure to replace the tokens and IDs in your cookies by similar strings to avoid compromising the security of your account.
@bdrtsky I completely agree about the Netscape Cookie File format. It's difficult to parse, archaic, and it's about time to have it replaced. There are some efforts here and there to have a unified cookie jar format based on JSON, but there doesn't seem to be a lot of adoption beyond a few browser addons.

@adiov thanks for the reply
using edit cookie my cookies.txt file look like the below
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by EditThisCookie
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	__ssid	4a1aVdfe-0c9f-4527-a598-0(8ea3c89684f
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	_ga	GA1.2.788730575.1553367758
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	_gat	1
.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	_guid	0ae2606c-4710-47294-8b17-8ffda0920d37
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	_lipt	CwEAAAFpq_KJGVdTUbRTpBCsYHTDvRso-sieOTjoczHpgL21ZQPqzrslnwmBFlYlTHmrd_ZDs4j_fJgd9HFw2uAisuob3vQlcVQnZenEmappOkcRHZPUCeaNqGG3YjtYb4wWvSC9xzrYb1B0PAap16HxB_4tvjLvfZwDMy7GCZ3v86WXVTC3viJGxzG7wQvNxtjdeUw
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	aam_uuid<PHONE_NUMBER>2501421712992027833138320141
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	AMCV_14215E3D5B95C57C0A495C55%40AdobeOrg	-1303530583%7CMCIDTS%7C17979%7CMCMID%7C39777900609525975202975470099839344838%7CMCAAMLH-1554044232%7C6%7CMCAAMB-1554044232%7CRKhpRz8krg2tLO6pCuXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y%7CMCOPTOUT-1553446632s%7CNONE%7CvVersion%7C3.3.0%7CMCCIDH%7C1669403847
.linkedin.com	TRUE	/	FALSE	0	AMCVS_14215E3D5995C57C0A46*C55%40AdobeOrg	1
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	bcookie	"v=2&7cbea$510-9482-4109-85ce-f6193dcbd7dc"
.linkedin.com	TRUE	/	FALSE	0	lang	v=2&lang=en-us
.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	li_oatml	AQFTjDUuDKm_wAAAWmr8pDnVTWxvIN9IvTDrCS1XWu8uBZqYgWyTbpZT1Ct9bHZCjZuet21cHe7X6xksOwWBm3WVOgGMQNMs
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	liap	true
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	lidc	"b=VB52:g=19(6:u=16:i=1553442651:t=1553454998:s=AQGOXdwx3DucRPeRgZVbsaNqru8T6ZDR"
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	UserMatchHistory	AQLMOCNgCIQwpxgAAAWmwZU1XgLWa6OwknBKAnL1gkn6FHfH4C0ZVBD9szs9MOgT3fkFb4CHpZNuFs77fspNE7W_xyPMTWyFtKfl1FWcmMmAuSNfhjtT7I_vZibqoOwsKcBcxINHXm5LcsQM-i3FwDlP2bhOanVYpvddBzoEjL6FMOViawmrM2VVbwgNiMDfAKcG77tGmICyIIrJJZVAPMrMasqx88GnhGb
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	utag_main	v_id:0169abf543bc001a75c2880939f903078002207000c48$_sn:3$_se:16$_ss:0$_st:1553441480062$vapi_domain:linkedin.com$ses_id:1553439349096%3Bexp-session$_pn:4%3Bexp-session
.www.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	bscookie	"v=1&201901072CC2119adb409bd-7c85-391-82e9-3e1f82209c38AQFVbuUDkPFjOoNJRNU_uduCG5z1Z0Na"
.www.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	JSESSIONID	"ajax:26800093889696185263"
.www.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	li_at	AQEDLYhPAE5rXVAAABabA1mU0AAAFp1EIdTU0ApljPUZnh3LbyVeJveR3hgUWynp2B7T6ZPG6lINpCsXsaQIn5MydCePdcoOPXH2Mk3b4G6N7KzCDf6E6mV_CQ_U7XR_7Z_onW-rQ9U4cgbDb_Va
.www.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	sl	v=1&D7teB
www.linkedin.com	FALSE	/	FALSE	0	lil-lang	en_US
www.linkedin.com	FALSE	/	FALSE<PHONE_NUMBER>	visit	"v=1&M"

after i run the command  youtube-dl -v --cookies cookies.txt "https://www.linkedin.com/learning/solidworks-advanced-sketching/belt-chain"
my cookies.txt file changes to look like the below
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This is a generated file!  Do not edit.

.linkedin.com	TRUE	/	FALSE	0	AMCVS_14215E3D5995C57C0A495C55%40AdobeOrg	1
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	__ssid	4a1aVdfe-0c9f-4527-a598-0(8ea3c89684f
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	_ga	GA1.2.788730575.1553367758
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	_gat	1
.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	_guid	0ae2606c-4710-47294-8b17-8ffda0920d37
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	_lipt	CwEAAAFpq_KJGVdTUbRTpBCsYHTDvRso-sieOTjoczHpgL21ZQPqzrslnwmBFlYlTHmrd_ZDs4j_fJgd9HFw2uAisuob3vQlcVQnZenEmappOkcRHZPUCeaNqGG3YjtYb4wWvSC9xzrYb1B0PAap16HxB_4tvjLvfZwDMy7GCZ3v86WXVTC3viJGxzG7wQvNxtjdeUw
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	aam_uuid<PHONE_NUMBER>2501421712992027833138320141
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	AMCV_14215E3D5B95C57C0A495C55%40AdobeOrg	-1303530583%7CMCIDTS%7C17979%7CMCMID%7C39777900609525975202975470099839344838%7CMCAAMLH-1554044232%7C6%7CMCAAMB-1554044232%7CRKhpRz8krg2tLO6pCuXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y%7CMCOPTOUT-1553446632s%7CNONE%7CvVersion%7C3.3.0%7CMCCIDH%7C1669403847
.linkedin.com	TRUE	/	FALSE	0	AMCVS_14215E3D5995C57C0A46*C55%40AdobeOrg	1
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	bcookie	"v=2&7cbea$510-9482-4109-85ce-f6193dcbd7dc"
.linkedin.com	TRUE	/	FALSE	0	lang	v=2&lang=en-us
.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	li_oatml	AQFTjDUuDKm_wAAAWmr8pDnVTWxvIN9IvTDrCS1XWu8uBZqYgWyTbpZT1Ct9bHZCjZuet21cHe7X6xksOwWBm3WVOgGMQNMs
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	liap	true
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	lidc	"b=VB52:g=19(6:u=16:i=1553442651:t=1553454998:s=AQGOXdwx3DucRPeRgZVbsaNqru8T6ZDR"
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	UserMatchHistory	AQLMOCNgCIQwpxgAAAWmwZU1XgLWa6OwknBKAnL1gkn6FHfH4C0ZVBD9szs9MOgT3fkFb4CHpZNuFs77fspNE7W_xyPMTWyFtKfl1FWcmMmAuSNfhjtT7I_vZibqoOwsKcBcxINHXm5LcsQM-i3FwDlP2bhOanVYpvddBzoEjL6FMOViawmrM2VVbwgNiMDfAKcG77tGmICyIIrJJZVAPMrMasqx88GnhGb
.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	utag_main	v_id:0169abf543bc001a75c2880939f903078002207000c48$_sn:3$_se:16$_ss:0$_st:1553441480062$vapi_domain:linkedin.com$ses_id:1553439349096%3Bexp-session$_pn:4%3Bexp-session
.www.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	bscookie	"v=1&201901072CC2119adb409bd-7c85-391-82e9-3e1f82209c38AQFVbuUDkPFjOoNJRNU_uduCG5z1Z0Na"
.www.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	JSESSIONID	"ajax:26800093889696185263"
.www.linkedin.com	TRUE	/	TRUE<PHONE_NUMBER>	li_at	AQEDLYhPAE5rXVAAABabA1mU0AAAFp1EIdTU0ApljPUZnh3LbyVeJveR3hgUWynp2B7T6ZPG6lINpCsXsaQIn5MydCePdcoOPXH2Mk3b4G6N7KzCDf6E6mV_CQ_U7XR_7Z_onW-rQ9U4cgbDb_Va
.www.linkedin.com	TRUE	/	FALSE<PHONE_NUMBER>	sl	v=1&D7teB
www.linkedin.com	FALSE	/	FALSE	0	lil-lang	en_US
www.linkedin.com	FALSE	/	FALSE<PHONE_NUMBER>	visit	"v=1&M"

@adiov is there's a tools to auto-format cookie file to this Netscape thing? I can't google anything. I also noticed that after I try to run it with youtube-dl it's automaticaly replaces it's content!

same issue here, both using cookies and username/pass.

Guys, I was able to download using cookies after I uninstalled youtube-dl through pip and installed using pip3. In my machine, pip relates to python 2.7 and 'unicode' object has no attribute 'items' appears to be related with it.

Very good point @tmedicci! Indeed, I'm running youtube-dl on Python 3.6 on Linux and the Python 3.4.4 build on Windows. None of my attempts were with 2.7.

@tmedicci @adiov thanks guys 😁, followed @tmedicci steps and is working for me now, @bdrtsky you should try it and also use EditThisCookie extensions to save cookie.

Yeah, I can't do that sudo pip uninstall youtube-dl ImportError: cannot import name main
Python is such a pain.

I uninstalled youtube-dl using pip and installed it again using pip3 - and using cookies I could download something. But only the free sections of videos. And I do indeed have premium to watch entire courses. Don't know what to do at this point....

Hi guys, I just updated to version 2019.04.30 and I got the same problem:
> ~/.local/bin/youtube-dl --cookies=cookies.txt --write-sub  -v  --sleep-interval 60  -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" https://www.linkedin.com/learning/learning-kubernetes/
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--cookies=cookies.txt', '--write-sub', '-v', '--sleep-interval', '60', '-o', '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s', 'https://www.linkedin.com/learning/learning-kubernetes/']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.04.30
[debug] Python version 3.6.8 (CPython) -<EMAIL_ADDRESS>[debug] exe versions: ffmpeg 3.4.5, ffprobe 3.4.5, rtmpdump 2.4
[debug] Proxy map: {}
[linkedin:learning:course] Downloading JSON metadata
[download] Downloading playlist: Learning Kubernetes
...
...
...
[download] Learning Kubernetes/04 - What is containerization.mp4 has already been downloaded
[download] 100% of 12.73MiB
[download] Downloading video 5 of 33
[linkedin:learning] what-is-kubernetes: Downloading 360p JSON metadata
[linkedin:learning] what-is-kubernetes: Downloading 540p JSON metadata
[linkedin:learning] what-is-kubernetes: Downloading 720p JSON metadata
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/home/user/.local/lib64/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info
    ie_result = ie.extract(url)
  File "/home/user/.local/lib64/python3.6/site-packages/youtube_dl/extractor/common.py", line 529, in extract
    ie_result = self._real_extract(url)
  File "/home/user/.local/lib64/python3.6/site-packages/youtube_dl/extractor/linkedin.py", line 127, in _real_extract
    self._sort_formats(formats, ('width', 'height', 'source_preference', 'tbr', 'abr'))
  File "/home/user/.local/lib64/python3.6/site-packages/youtube_dl/extractor/common.py", line 1326, in _sort_formats
    raise ExtractorError('No video formats found')
youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Any update here?

@eliadjoke Could you please also share the content of your cookies.txt? The 'unicode' object has no attribute 'items' error strongly points to your cookies.txt being malformed. Please be sure to replace the tokens and IDs in your cookies by similar strings to avoid compromising the security of your account.

...
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 796, in extract_info
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 530, in extract
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/discovery.py", line 75, in _real_extract
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 2819, in _get_cookies
  File "/usr/lib/python2.7/Cookie.py", line 583, in __init__
    if input: self.load(input)
  File "/usr/lib/python2.7/Cookie.py", line 643, in load
    for k, v in rawdata.items():
AttributeError: 'unicode' object has no attribute 'items'

Digging into the stack trace a little I see that the "unicode object..." error is coming from Cookies.py's load() function:
    def load(self, rawdata):
        """Load cookies from a string (presumably HTTP_COOKIE) or
        from a dictionary.  Loading cookies from a dictionary 'd'
        is equivalent to calling:
            map(Cookie.__setitem__, d.keys(), d.values())
        """
        if type(rawdata) == type(""):
            self.__ParseString(rawdata)
        else:
            # self.update() wouldn't call our custom __setitem__
            for k, v in rawdata.items():
                self[k] = v
        return
    # end load()

It expects to be passed either a str (type("")) or another SimpleCookie object.  It checks for the first and assumes the second.  So when it gets something that isn't str (unicode I presume) from File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 2819, in _get_cookies it tries to treat it like a SimpleCookie and invokes items() on it.  Since it's not a SimpleCookie it throws.
Technically not youtube-dl's bug, but should be easy enough to code around.  Note that the above snippet is from Python 2.7.12 as installed on my Linux machine so not exactly current.

Do what @tmedicci said. It worked for me. I'm using Mac OS

Windows version 2019.08.02 no dice using cookies extracted using various tools in Netscape format.
Gets past free videos and errors out with no videos found.
Will install Py3 and try it as per @tmedicci's results under Linux

Happens for me also
[linkedin:learning] ansible-overview: Downloading 360p JSON metadata [linkedin:learning] ansible-overview: Downloading 540p JSON metadata [linkedin:learning] ansible-overview: Downloading 720p JSON metadata ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output. Traceback (most recent call last):   File "/usr/local/lib/python3.7/site-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info     ie_result = ie.extract(url)   File "/usr/local/lib/python3.7/site-packages/youtube_dl/extractor/common.py", line 530, in extract     ie_result = self._real_extract(url)   File "/usr/local/lib/python3.7/site-packages/youtube_dl/extractor/linkedin.py", line 127, in _real_extract     self._sort_formats(formats, ('width', 'height', 'source_preference', 'tbr', 'abr'))   File "/usr/local/lib/python3.7/site-packages/youtube_dl/extractor/common.py", line 1327, in _sort_formats     raise ExtractorError('No video formats found') youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
I'm on macos ( 18.7.0 Darwin Kernel Version 18.7.0: Thu Jun 20 18:42:21 PDT 2019; root:xnu-4903.270.47~4/RELEASE_X86_64 x86_64 )
youtube-dl version 2019.08.02

Still not working with Linkedin Learning paid videos.
YTDL Version 2019.08.13
Verbose Output
D:\temp 2>youtube-dl --verbose --cookies cookies.txt https://www.linkedin.com/learning/writing-a-research-paper > error.txt
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', '--cookies', 'cookies.txt', 'https://www.linkedin.com/learning/writing-a-research-paper']
[debug] Encodings: locale cp1252, fs mbcs, out cp1252, pref cp1252
[debug] youtube-dl version 2019.08.13
[debug] Python version 3.4.4 (CPython) - Windows-7-6.1.7601-SP1
[debug] exe versions: ffmpeg N-89073-gff8f40a630, ffprobe N-89073-gff8f40a630, phantomjs 2.1.1
[debug] Proxy map: {}
ERROR: An extractor error has occurred. (caused by KeyError('JSESSIONID',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest
version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp5b8vs72_\build\youtube_dl\extractor\common.py", line 530, in extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp5b8vs72_\build\youtube_dl\extractor\linkedin.py", line 158, in real_extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp5b8vs72\build\youtube_dl\extractor\linkedin.py", line 36, in call_api
KeyError: 'JSESSIONID'
Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp5b8vs72\build\youtube_dl\extractor\common.py", line 530, in extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp5b8vs72_\build\youtube_dl\extractor\linkedin.py", line 158, in real_extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp5b8vs72\build\youtube_dl\extractor\linkedin.py", line 36, in _call_api
KeyError: 'JSESSIONID'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp5b8vs72_\build\youtube_dl\YoutubeDL.py", line 796, in extract_info
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp5b8vs72_\build\youtube_dl\extractor\common.py", line 543, in extract
youtube_dl.utils.ExtractorError: An extractor error has occurred. (caused by KeyError('JSESSIONID',)); please report this issue on https://yt-dl.org/bug . Make sure
you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Also
D:\temp 2>youtube-dl -wi --cookies cookies.txt https://www.linkedin.com/learning/writing-a-research-paper
[linkedin:learning:course] Downloading JSON metadata
ERROR: Unable to download JSON metadata: HTTP Error 400: INKApi Error (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are
using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

For me changing the authentication from --cookies to -u (without -p) it worked

As sekmo said above, it works with just the username and password on my side. Haven't tried cookies with LinkedIn learning yet (last time I checked they worked fine with lynda). Currently using the GUI program: youtube-dlg with youtube-dl version 2019.08.13 and here's what the command looks like:
 youtube-dl.exe --newline -u<EMAIL_ADDRESS>-p mypassword -i -o "C:\Users\Joe\Desktop\OutputFolder\%(playlist_index)s-%(title)s.%(ext)s" --verbose "https://www.linkedin.com/learning/learning-python-2"
--verbose is optional
don't know about --newline and -i

Just was forcibly migrated from Lynda.com to LinkedIn learning. Seems now I am having the same issue mentioned above. I have linked together my university account and my personal LinkedIn and can browse and watch all the libraries without issue!
I tried downloading: https://www.linkedin.com/learning/fusion-360-essential-training-2/
First video downloads without issue, second video I get the same error as above. I have tried both cookies and regular login. Using 2<IP_ADDRESS> with Python3 on OSX.
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/Users/seangreenhalgh/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info
    ie_result = ie.extract(url)
  File "/Users/seangreenhalgh/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/Users/seangreenhalgh/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/extractor/linkedin.py", line 127, in _real_extract
    self._sort_formats(formats, ('width', 'height', 'source_preference', 'tbr', 'abr'))
  File "/Users/seangreenhalgh/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 1327, in _sort_formats
    raise ExtractorError('No video formats found')
youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Just was forcibly migrated from Lynda.com to LinkedIn learning. Seems now I am having the same issue mentioned above. I have linked together my university account and my personal LinkedIn and can browse and watch all the libraries without issue!
I tried downloading: https://www.linkedin.com/learning/fusion-360-essential-training-2/
First video downloads without issue, second video I get the same error as above. I have tried both cookies and regular login. Using 2<IP_ADDRESS> with Python3 on OSX.
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/Users/redacted/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info
    ie_result = ie.extract(url)
  File "/Users/redacted/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/Users/redacted/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/extractor/linkedin.py", line 127, in _real_extract
    self._sort_formats(formats, ('width', 'height', 'source_preference', 'tbr', 'abr'))
  File "/Users/redacted/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 1327, in _sort_formats
    raise ExtractorError('No video formats found')
youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https

can confirm and recreate the error @zioalex had with the same error using the same video/course. Downloads up to video 4 and error on video 5. Happens using both login creds and cookies.txt
[download] Downloading video 5 of 33
[linkedin:learning] what-is-kubernetes: Downloading 360p JSON metadata
[linkedin:learning] what-is-kubernetes: Downloading 540p JSON metadata
[linkedin:learning] what-is-kubernetes: Downloading 720p JSON metadata
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/Users/redacted/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info
    ie_result = ie.extract(url)
  File "/Users/redacted/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/Users/redacted/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/extractor/linkedin.py", line 127, in _real_extract
    self._sort_formats(formats, ('width', 'height', 'source_preference', 'tbr', 'abr'))
  File "/Users/redacted/Dev/Python_virtualenvs/youtube-dl/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 1327, in _sort_formats
    raise ExtractorError('No video formats found')
youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

@scgreenhalgh That's weird. It is downloading all of 'em on my side on 2<IP_ADDRESS>. Both courses.
Here's what the command looks like:
youtube-dl.exe --newline -u<EMAIL_ADDRESS>-p mypassword -i -o "C:\Users\JohnDoe\Desktop\llearning_dl\%(playlist_index)s-%(title)s.%(ext)s" --ignore-config --hls-prefer-native --external-downloader aria2c.exe "https://www.linkedin.com/learning/fusion-360-essential-training-2"
and for the other, replace the last parameter with "https://www.linkedin.com/learning/learning-kubernetes"

Hmm, interesting @hexerus tried the same thing (apart from the external downloader flag) and still getting the same issues!
Out of curiosity are you on a paid account or one through a partnering organisation (i.e. a uni or library)?

@scgreenhalgh Well, yes, I think at this point the only logical culprit would be account type. I have a yearly premium LinkedIn account that I migrated from Lynda.com. Do you have access to Lynda? If yes, try downloading from there. I remember using a university account there and it downloaded all courses that I needed, flawlessly, using the cookies.txt.

@hexerus yeah it does seem to point to the account type being the issue which is kind of interesting seeing that it should be pulling from the same pages! Unfortunately they forcefully migrated me over and i can no longer access lynda.com.

Just curious about those people who are not even afraid of sharing their cookies! :astonished:

lyon667 already described above the main part, how to get this working again … . In case it’s not clear yet, I wrote a more detailed step by step instruction:
My problems were:

Could only download free public videos (e.g. only the 1st from a course, and got “ERROR: No video formats found” for the others).
Unable to use cookies (error “AttributeError: 'unicode' object has no attribute 'items'”)
After fixing the --cookies error, still got the error “No video formats found”
FYI: I’m using an enterprise learning account (which is connected to my private linkedin account)

My workaround looks like this
C:\youtube-dl>python -m youtube_dl  --cookies "cookies.txt" --add-header "x-li-identity:dX...Sk=" https://www.linkedin.com/learning/python-essential-training-2/hello-world
[linkedin:learning] hello-world: Downloading 360p JSON metadata
[linkedin:learning] hello-world: Downloading 540p JSON metadata
[linkedin:learning] hello-world: Downloading 720p JSON metadata
[linkedin:learning] hello-world: Downloading m3u8 information
[download] Destination: Hello world-687478.mp4
[download] 100% of 4.57MiB in 00:00

The essential part is: --cookies cookies.txt --add-header "x-li-identity:dX...Sk="
FYI:

No need for username/password on the command line.
The file cookies.txt + header value must be retrieved as described below.
I'm using the source code of youtube-dl, therefore python -m youtube_dl

Solution for --cookies error “AttributeError: 'unicode' object has no attribute 'items'”
Simply update from Python2 to Python3.
Probably alternative solution for Python2: Edit source file “youtube_dl/extractor/common.py” as described here.
How to get a valid cookies.txt file

Install Firefox with this Plugin
Use Firefox to login to linkedin:learning
Play a learning video e.g. on this page.
Use the plugin to export the file cookies.txt

How to get the "x-li-identity” header value

In Firefox press Ctrl-Shift-E to open the Network Monitor (development console).
Reload the  linkedin:learning page with the video.
In the Network Monitor, search for “/learning-api/detailedCourses”, and click on one of the lines with the HTTP requests.
On the right side, scroll down to the request header line “x-li-identity: ...”, and copy the value to your command line option: --add-header "x-li-identity:..."

@lyon667

So far I was not able to figure out where this string actually comes from so if someone has more luck it would be great start for fixing this problem within the code.

I found two sources for the "x-li-identity" value:

The plain text value ("urn:li:enterpriseProfile:(urn:li:enterpriseAccount:<acc_number>,<unknown_number>)") appears several times on page https://www.linkedin.com/learning/?accountId=... (=3rd GET request after the password POST).
It's also included in the base64 encoded cookie "li_at" (transmitted in response headers to GET https://www.linkedin.com/checkpoint/enterprise/login/... = 2nd request after pwd POST)

Hi @martin54
I just wanted to thank you for your detailed explanation. Your problem was the same as mine, and your solution worked for me as well.
To add, I am also using SSO (single sign-on) and have my personal LinkedIn account linked to my LinkedIn Learning account that uses SSO.
When explicitly using the cookies and the x-li-identity header, I was able to grab the entire playlist of video files.
Thank you again!

Retry after adding a new cookies.txt file. It worked in my case.

lyon667 already described above the main part, how to get this working again … . In case it’s not clear yet, I wrote a more detailed step by step instruction:
My problems were:

Could only download free public videos (e.g. only the 1st from a course, and got “ERROR: No video formats found” for the others).
Unable to use cookies (error “AttributeError: 'unicode' object has no attribute 'items'”)
After fixing the --cookies error, still got the error “No video formats found”
FYI: I’m using an enterprise learning account (which is connected to my private linkedin account)

My workaround looks like this
C:\youtube-dl>python -m youtube_dl --cookies "cookies.txt" --add-header "x-li-identity:dX...Sk=" https://www.linkedin.com/learning/python-essential-training-2/hello-world
[linkedin:learning] hello-world: Downloading 360p JSON metadata
[linkedin:learning] hello-world: Downloading 540p JSON metadata
[linkedin:learning] hello-world: Downloading 720p JSON metadata
[linkedin:learning] hello-world: Downloading m3u8 information
[download] Destination: Hello world-687478.mp4
[download] 100% of 4.57MiB in 00:00

The essential part is: --cookies "cookies.txt" --add-header "x-li-identity:dX...Sk="
FYI:

No need for username/password on the command line.
The file cookies.txt + header value must be retrieved as described below.
I'm using the source code of youtube-dl, therefore python -m youtube_dl

Solution for --cookies error “AttributeError: 'unicode' object has no attribute 'items'”

Simply update from Python2 to Python3.
Probably alternative solution for Python2: Edit source file “youtube_dl/extractor/common.py” as described here.

How to get a valid cookies.txt file

Install Firefox with this Plugin
Use Firefox to login to linkedin:learning
Play a learning video e.g. on this page.
Use the plugin to export the file cookies.txt

How to get the "x-li-identity” header value

In Firefox press Ctrl-Shift-E to open the Network Monitor (development console).
Reload the  linkedin:learning page with the video.
In the Network Monitor, search for “/learning-api/detailedCourses”, and click on one of the lines with the HTTP requests.
On the right side, scroll down to the request header line “x-li-identity: ...”, and copy the value to your command line option: --add-header "x-li-identity:..."

This simple javascript code gets the x-li-identity works for extracting the x-li-identity for me, paste it into the the course page with developer tools console:
console.log(document.getElementsByTagName('code')[0].innerHTML.match(/"enterpriseProfileHash":"(dX.*?)"/i)[1])


Add dashboard for repository metrics

Create a dashboard for the repository in prometheus (once #367 merges and the new container image is built with those updates)
Epic: #139

note to self: need to figure out how to add prometheus to the ALLOWED_HOSTS for django...


support more complex network mode in istio

In https://github.com/kurator-dev/kurator/pull/46 we add non-flat mode about istio, but in a real world the typology of clusters may more complex.
thinking about a network typology like following:

we need a mechanism to support this but can be used in other plugin.
cc @hzxuzhonghu @prodanlabs

It makes sense to me. As you said, there are actually more complex hybrid cloud network environments for application scenarios.
Maybe consider admiral, but I don't know much about it.

plan to add annotation like topology.istio.io/network: network2 on Cluster CRD in karmada


Add an app engine flex memcache sample.

Ready for another look.

LGTM

I'll look at mocks in a follow-up PR now.

LGTM once tests pass!

#108 merged, so let's restart the travis job


Install error Pynq 2.7

Trying to install Pynq-Composable_Pipeline on Pynq-Z1 with version 2.7
The command
sudo pip3 install PYNQ_Composable_Pipeline/ --verbose
returns the following. I checked Cython version, I have the 0.29.28 version but it says that the 0.29.14 is installed
Using pip 22.0.3 from /usr/local/share/pynq-venv/lib/python3.8/site-packages/pip (python 3.8)
Processing /PYNQ_Composable_Pipeline
  Running command pip subprocess to install build dependencies
  Collecting setuptools
    Using cached setuptools-60.9.3-py3-none-any.whl (1.1 MB)
  Collecting wheel
    Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB)
  Collecting pynq>=2.6.0
    Using cached pynq-2.7.0-cp38-cp38-linux_armv7l.whl
  Collecting graphviz>=0.16
    Using cached graphviz-0.19.1-py3-none-any.whl (46 kB)
  Collecting cffi
    Using cached cffi-1.15.0-cp38-cp38-linux_armv7l.whl
  Collecting numpy
    Using cached numpy-1.22.2.zip (11.4 MB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
    Preparing metadata (pyproject.toml): started
    Preparing metadata (pyproject.toml): finished with status 'done'
  Collecting pandas
    Using cached pandas-1.4.1.tar.gz (4.9 MB)
    Installing build dependencies: started
    Installing build dependencies: still running...
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'error'
    error: subprocess-exited-with-error

    × Getting requirements to build wheel did not run successfully.
    │ exit code: 1
    ╰─> [20 lines of output]
        Traceback (most recent call last):
          File "/tmp/tmpy1gn_yn6", line 363, in <module>
            main()
          File "/tmp/tmpy1gn_yn6", line 345, in main
            json_out['return_val'] = hook(**hook_input['kwargs'])
          File "/tmp/tmpy1gn_yn6", line 130, in get_requires_for_build_wheel
            return hook(config_settings)
          File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 147, in get_requires_for_build_wheel
            return self._get_build_requires(
          File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 128, in _get_build_requires
            self.run_setup()
          File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 249, in run_setup
            super(_BuildMetaLegacyBackend,
          File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 143, in run_setup
            exec(compile(code, __file__, 'exec'), locals())
          File "setup.py", line 651, in <module>
            ext_modules=maybe_cythonize(extensions, compiler_directives=directives),
          File "setup.py", line 411, in maybe_cythonize
            raise RuntimeError(
        RuntimeError: Cannot cythonize with old Cython version (0.29.14 installed, needs 0.29.24)
        [end of output]

    note: This error originates from a subprocess, and is likely not a problem with pip.
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  error: subprocess-exited-with-error

  × pip subprocess to install build dependencies did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: /usr/local/share/pynq-venv/bin/python3 /tmp/pip-standalone-pip-qdl2sgw8/__env_pip__.zip/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-9z3z4h5y/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel 'pynq>=2.6.0' 'graphviz>=0.16'
  cwd: [inherit]
  Installing build dependencies ... error
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.`

Hi,
Are you installing from the main branch? The main branch should be aligned with pynq 2.6.2.
I would suggest you install from the v1.0.0-dev branch, which is for pynq 2.7.0. This branch is very stable and almost ready for release.

Hi Mario
python3 -m pip install PYNQ_Composable_Pipeline/ --no-build-isolation
This instruction returns this error saying that Pynq-Z1 is not supported
`python3 -m pip install PYNQ_Composable_Pipeline/ --no-build-isolation
Processing ./PYNQ_Composable_Pipeline
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [18 lines of output]
Traceback (most recent call last):
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in
main()
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 164, in prepare_metadata_for_build_wheel
return hook(metadata_directory, config_settings)
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/setuptools/build_meta.py", line 156, in prepare_metadata_for_build_wheel
self.run_setup()
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/setuptools/build_meta.py", line 236, in run_setup
super(_BuildMetaLegacyBackend,
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/setuptools/build_meta.py", line 142, in run_setup
exec(compile(code, file, 'exec'), locals())
File "setup.py", line 120, in
check_env()
File "setup.py", line 38, in check_env
raise ValueError("Board {} is not supported.".format(board))
ValueError: Board Pynq-Z1 is not supported.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.`

Yes, that's correct. Glad this works. It should be solved when the branch is merged in main.


Where can we define colors ?

In the README I see

You can define Terminal Colors in settings.

But I can't find where. :/

Ok there is no interface, only can be done in config.cson


Increase service fabric staging partition size on vms

Deploying service fabric in staging has become problematic because the machines continually run out of space, the machines has enough space but service fabric lives in a small partition which is only 80GB, we already have in place clean up processes but even with that with are using almost all the space in the machines

Release Note Category

[ ] Feature changes/additions
[ ] Bug fixes
[ ] Internal Infrastructure Improvements

Release Note Description

@chcosta is this something you're already working on (or fixed already)?

This is fixed, we have migrated to a different VM sku with a larger temporary storage drive and I haven't seen any disk space issues recently.


Relaxed syntax for JSON

Some new rules for gui_definition.json. They will made easier for users to manage JSON files.

[x] Allow comments
[ ] Allow an object instead of an array of an object.
[ ] Allow the "gui" object as root.
[x] Allow trailing commas at the end of objects and arrays.

Allow comments
C-style comments (// ... and /* ... */) are useful for readability.
{
    /*
    comments
    */
    "gui": [{}]  // comments
}

Allow an object instead of an array of an object.
The array parentheses [] (and indnetation for them) are redundant when it has only one item.
"gui": //[
{
    "label": "no need the array parentheses when it has only one item"
}
//]

Allow the "gui" object as root.
The root parentheses {} and the key gui are redundant when there is only the "gui" object.
// { "gui":
{
    "label": "no need the root parentheses when there is no other keys."
}
// }

Allow trailing commas at the end of objects and arrays.
When managing json files in git, a comma at the end of the object beautifies the commit history.
[
    "need a trailing comma",
    "need a trailing comma",
    "no need a trailing comma but you can put it",
]

Comments and trailing commas are supported at #42

You can now remove array brackets when it has only one item. (#51)
and you can also move gui elements (e.g. "command") into the root object. (#52)
like this
{
    "minimum_required": "0.8.0",
    // no need for "gui"
    "label": "test",
    "command": "echo hello",
    "components": [],
    // no need for array brakets [] for "help"
    "help": {
        "label": "test",
        "type": "url",
        "url": "example.com",
    },
}


Inline prim-wrapping functions

The prelude/prim.mo is full of functions simply wrapping a prim, e.g.
func int64ToNat64(n : Int64) : Nat64 = (prim "num_wrap_Int64_Nat64" : Int64 -> Nat64) n;

generating a Wasm function for them and calling them is absurdly expensive
when the prim is just a simple Wasm instruction. Also, it requires boxing
and unboxing arguments and results.
So we recognize such functions when creating the const summary, and
use the prim directly when calling such function.

Some sneak previews:
-    i32.const 0
     local.get $n1_wrapped
-    call $intToInt64
-    call $unbox_i64
+    call $Int->Int64
…
-  (func $intToInt64 (type 14) (param $clos i32) (param $n i32) (result i32)
-    local.get $n
-    call $Int->Int64
-    call $box_i64)

Todo:

[ ] Maybe extract the refactoring (comple_prim_invocation) in a separate PR, to keep diff and conflicts small
[ ] Previously, the backend assumed that prims are always in functions, and does not care if they are large. Now large prims should be wrapped in functions in the backend (using share_code).
[ ] why does it not kick in in run/float-ops.mo

This will make @ggreif happy I assume :-)

I guess it would have been cleaner to have this as a Ir-to-Ir pass, instead of complicating the backend even further. But it fits there nicely right now.

The next big win for numeric heavy code is to have non-recursive let in the IR, because that makes it easier to keep things unboxed even across lets. But that’s a slightly larger undertaking.

Good that it wasn’t merged yet, I noticed that some prims (in particular RetPrim) are not control-flow-side-effect-free in a way that inlining is safe. fixed.
Otherwise there aren’t that many prim implementations where I would be too worried about code duplication (compared to what we do else in the compiler, not necessarily to the completely thought through global optimum). Many complex prims are calls into the Rust RTS anyways, so they are fine.
I think I’ll put the cycle stuff into separate fuctions and move them out of the huge compile_exp block into the IC module.

Sharing the code for the cycle prims is now in https://github.com/dfinity/motoko/pull/3162.
Any other ones we should definitely share?

Sharing the code for the cycle prims is now in #3162.
Any other ones we should definitely share?

So both "Todo"s above can be checked?

Perf numbers look good, I’m in favor of merging now, and sharing more primitive functions when and if we have evidence that they are better shared.

Hmm, the instruction count improvement was less than I hoped for. Maybe function calls are just too cheap :-)
With the sha256 test case in #3206 included I measure
In terms of gas, 3 tests improved and the mean change is -0.2%.
In terms of size, 2 tests regressed, 1 tests improved and the mean change is +0.1%.

which is also quite small. Maybe together with a possible non-recursive let (or another mechanism to get unboxed variables) this will be better.


Danish data service energy

[X] My submission is formatted according to the guidelines in the contributing guide
[X] My addition is ordered alphabetically
[X] My submission has a useful description
[X] The description does not have more than 100 characters
[X] The description does not end with punctuation
[X] Each table column is padded with one space on either side
[X] I have searched the repository for any relevant issues or pull requests
[X] Any category I am creating has the minimum requirement of 3 items
[X] All changes have been squashed into a single commit

Open energy data from Energinet to society.

My pleasure!


Regen of MGI models using 2022-03-05 go_cam_mgi.gpad

Details in PR to mgi-go-cams repo: https://github.com/geneontology/mgi-go-cams/pull/13

More discussion on ticket. Will merge.


Fix ordering and boolean search

So I am resubmitting my patchy fixes for the issues at hand, just to shed light on the problem

I've addressed the sorting issue by going a little closer to the core reason for the error in 08ba02e.  Sometime after Django 1.7, their MultipleObjectMixin started including ordering = None as a class attribute, and we were blindly forwarding that None into the meta constructor.

I still haven't recreated the boolean problem using the latest code, though.  I'm not sure what would be the next step in debugging that.

haven't recreated the boolean problem using the latest code

do you mean it does not happen in your repo? does http://<IP_ADDRESS>:8080/choices-fields/ search 'True' fine for you?

Here I created a test.

And this test for ordering.

Thanks for the tests. The code in the example works for me, but it looks like my home internet connection died. Once I'm back online I'll pull this down and see how the test runs.

If you revert the two commits that are code changes (and just keep the tests), does DatatableTests.test_search_term_boolean fail for you?  I'm on your branch (with those two code commits reverted) and it's passing for me.

They passed on my working branch since I had my own patches. I had also
checked-out and tried upstream/master as well and they passed as well. I
did not revert patches to try tests. Are you trying to see if tests fail
when they need to?
On Wed, Oct 5, 2016 at 10:01 PM Tim Valenta<EMAIL_ADDRESS>wrote:

If you revert the two commits that are code changes (and just keep the
tests), does DatatableTests.test_search_term_boolean fail for you? I'm on
your branch (with those two code commits reverted) and it's passing for me.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/pivotal-energy-solutions/django-datatable-view/pull/152#issuecomment-251855934,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHwzjndPYUQkctb_P-AzKx7tPrFI-jkgks5qxGSZgaJpZM4KPUwz
.

Well, it sounded like you see an error with searches on master, but I haven't been able to reproduce that today.  It leads me to think we can bring in the tests you made, but I don't think we need the code changes.
Specifically from above:

haven't recreated the boolean problem using the latest code
do you mean it does not happen in your repo? does http://<IP_ADDRESS>:8080/choices-fields/ search 'True' fine for you?

That is correct.  On master on my repo, the search for "True" works fine as far as I can tell.

I just tried tests against your latest commit on 10/4 (Allow deliberate None values) and both failed. Seems what you have done yesterday fixed it. Will you pull test for future reference?


Feat/add card component

Pull request https://github.com/okp4/ui/pull/146 was closed. Branch was then renamed into feat/add-card-component as requested by @amimart. This pull request was created to replace the closed one.
This PR implements following specification : https://github.com/okp4/ui/issues/120

:tada: This PR is included in version 1.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add Topolvm storage class and reorder the storage classes

Short description:
Add Topolvm storage class and reorder the storage classes in alphabetical order
More details:
Starting SNO 4.12, Topolvm is the default storage class that is being deployed by Assisted Installer

@jpeimer can this be closed?

Yes, closing this as we are moving the Storage Class Names to our test repo. Thanks!


Visualise solution

Visualisation tool to image one model at a time is complete and uploaded to sixtine_functions branch

When we're packaging this we need to make sure to import the function visualise from the file solution.py

well done @rhi-ackland amazing job!


Request to remove recorded pacakge

Hi, Could you remove cinta and api-to-yaml from repo history? It's against my company's policy to release them, I've deleted them from pypi, but this repo still have the record.

https://github.com/pypi-data/pypi-json-data/issues/14


sample code for opencv dnn with caffe model

sample code for opencv dnn with caffe model
it is not working.

it works with this
def getOutputsNames(net):
    layersNames = net.getLayerNames()
    # return [layersNames[i[0] - 1] for i in net.getUnconnectedOutLayersNames()]
    return ["loc_branch_concat", "cls_branch_concat"]


Addition of Quicksort Visualization in Examples

Actual Behaviour

Expected Behaviour

Steps to reproduce it
The Simulate section of the Examples page currently has an implementation of the bubblesort algorithm, along with visualization. I would like to add an implementation of the quicksort algorithm, also with the relevant visualization.
Screenshots of the issue

Would you like to work on the issue?
I would be glad to work on it and create a PR if such a change were approved.

Hi @Swapnil-2001 we would welcome a PR with this example if you are still interested.

Sure, @lmccart, I'd be happy to create a PR!


stats: names that require truncation cannot be looked up a second time.

Description:

@junr03 reports that when a name gets truncated, a subsequent lookup fails, e.g. from https://github.com/envoyproxy/envoy/blob/cdd62383da5159261395f29ad17d06a6b8a1486e/source/extensions/filters/http/dynamo/dynamo_filter.cc#L226

This testcase added to thread_local_store_test.cc appears to repro:
class TruncatingAllocTest : public StatsThreadLocalStoreTest {
  class TruncatingHeapAlloc : public HeapStatDataAllocator {
   public:
    bool requiresBoundedStatNameSize() const override { return true; }
  };

 protected:
  void SetUp() override {
    store_ = std::make_unique<ThreadLocalStoreImpl>(options_, truncating_heap_alloc_);
    // Do not call superclass SetUp.
  }

  TruncatingHeapAlloc truncating_heap_alloc_;
};

TEST_F(TruncatingAllocTest, LookupTruncated) {
  const uint64_t max_name_length = options_.maxNameLength();
  const std::string name_1(max_name_length + 1, 'A');
  EXPECT_LOG_CONTAINS("warning", "is too long with", {
      Counter& counter = store_->counter(name_1);
      EXPECT_EQ(&counter, &store_->counter(name_1));
    });
}

For context for eveyone else , it's not the subsequent lookup. It's a race condition around the fact in the current code, we don't index on the truncated name, and end up creating the truncated stat in the central store every time. That means a user of the previous allocated stat will crash. Right @jmarantz?

probably; something is going wrong anyway, but @junr03 wrote to me via DM
If the table name is super long and we truncated the name we end up trying to inc a null ptr

which is not exactly what I saw with this testcase. But whatever, if the testcase is accurate enough we'll just fix whatever's broken.

Yeah I'm pretty sure it's the race condition above. Anyway, let's try this out which I think will fix the issue.


could you support backend written by nodejs?

Sure we could, but we probably wouldn't, we still got plenty on our todos. Next up will be backend API documentation and tests, with that you can implement your own backend.

thank you~


maint: Wrap very long lines

Wrap very long lines (more than 450 chars).

I suggest to "rebase & merge".

Codecov Report

Merging #850 into devel will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##            devel     #850   +/-   ##
=======================================
  Coverage   54.36%   54.36%
=======================================
  Files         211      211
  Lines       21526    21526
  Branches     2893     2893
=======================================
  Hits        11703    11703
  Misses       9273     9273
  Partials      550      550

@lawrennd There would be much more to do about long lines:
$ bash ../count-long-lines.bash
N=120: 1235
N=150: 461
N=200: 142
N=250: 52
N=300: 18
N=350: 3
N=400: 0
N=450: 0

but I don't intend to do it right now, so you can consider merging and closing this PR if you agree with the changes.
(As usual I suggest to "rebase & merge".)


Poor image reconstruction quality.

Great work. I simplified your implementation by reducing the number of channels. I used around 1,000 images from the FFHQ dataset for reconstruction training. The loss function is MSE. The training proceeded normally, and the loss decreased as expected, but the resulting images are quite blurry. I would like to know where my code can be improved. If possible, sharing your training experience would be even better. Looking forward to your response.

nets.zip
this is the files

@zhaoyk1986 Im not downloading that zip file. Why dont you upload the code to github?
If you decreased channels while keeping the compression factor the same (eg f=32, c=16), then the compression rate will increase from 96x to 192x. Due to this bottleneck your model may be outputting blurry images.

@SwayStar123
Thank you for your reply.
Your answer is very inspiring. My original intention was to train the model using a small amount of data on a reduced channel. The model is likely to experience overfitting.
However, the fact is that the loss is decreasing, but the images are still somewhat blurry.
It is possible that, as you mentioned, the compression ratio of the model is too high, resulting in the inability to reconstruct clear images.


STDIN is no longer output on the terminal after running.

After running ./hget commands are able to be executed, but nothing is visibly typed in. Likely because STDIN is being redirected to some subshell or process created by hget. I'm running OSX 10.11.1 and have version 1.5.3 of go

you mean STDOUT? Currently hget output is just directed to STDOUT, what do you mean by are able to executed.

Ha! Yah I did mean STDOUT, my bad. To clear up my ambiguity, what I mean by 'commands' were shell utilities, like 'ls', 'cd', etc. So for example, if I run hget, its execution completes perfectly, however nothing else can be printed to the terminal. So if I type in 'whoami' nothing appears while I'm typing, but if I hit enter the utility executes normally and displays the current user. I've included a recording below so you can see what I mean.

Ha! Yah I did mean STDOUT, my bad. To clear up my ambiguity, what I mean by 'commands' were shell utilities, like 'ls', 'cd', etc. So for example, if I run hget, its execution completes perfectly, however nothing else can be printed to the terminal. So if I type in 'whoami' nothing appears while I'm typing, but if I hit enter the utility executes normally and displays the current user. I've included a recording below so you can see what I mean. At the end I type the same utility again, and you can see while it executes fine nothing was printed while I was typing

I'm seeing the same behavior.  After running hget, I see my normal bash prompt, but keyboard input is not echoed back to the screen.  I can blindly type in a command at the prompt and press Enter and do see the output of the command and a new prompt.   @cyber-gr1zzly's screen capture matches what I'm seeing.
I suspect it's upstream in pb: https://github.com/cheggaaa/pb/blob/v1.0.7/pb_x.go#L73.
Using hget/master (03213a995aeb8f3a655dcca3cc55ca8cafe494a0) with go1.7.3 linux/amd64.


Contents of collection is html encoded

I have pulled in a collection of html files using this plugin. The collection is named posts. I then have a template that uses the collection
{{#each posts}}
  {{contents}}
{{/each}}

This does print out the contents but the html is html encoded. '<' is '<' for instance. What am I doing wrong?
My metalsmith.json is simple
{
  "metadata": {
    "site": {
      "title": "Tomaw Tech"
    }
  },
  "plugins": {
    "metalsmith-collections": {
      "posts": "posts/*"
    },
    "metalsmith-page-titles":{},
    "metalsmith-in-place": {
      "engine": "handlebars"
    },
    "metalsmith-layouts": {
      "engine": "handlebars",
      "default": "layout.html"
    },
    "metalsmith-broken-link-checker": true
  }
}

+1 having the same issue.

You want to use three braces for unescaping HTML: {{{contents}}}.

Confirmed. I finally figured out it was my handlebars ignorance that was the main issue, but I failed to close this issue.


question about usage

Hi!
I want to use ema like this:  save ema model weights, and load the saved weights as normal weights, is this the right usage?
ema_model = EMA(model)

#train
output = model(data)

#val
output = ema_model.ema_model(data)
ema_model.update()

#save
torch.save(ema_model.ema_model.state_dict(), save_name)

#load
model.load_state_dict(torch.load(save_name), strict=True)

yup! would it help if I added a method for setting the online model weights and buffer with the EMAs?

nit: you should call ema_model.update() before the validation

Thx! I think it's good enough now!

@fire717 no problem
added it anyways in case you have a special need for it


Update find-and-release-quarantined-messages-as-a-user.md

@chrisda

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks.

The PR is correct based on current behavior, but the current behavior itself is wrong. Great consternation is going on right now about this.


iTerm version

This theme is so nice. Did you plan to roll out out to iTerm too or is there a way to convert it?

I was also thinking of an iTerm theme and also a vim theme as well!

Oh that would be so sweet.

@tdeekens @johnletey I use Hyper (https://hyper.is/) if not working directly in VS Code.
I can look into iTerm and Vim, although admittedly I am terrified of the latter...

iTerm would be more than enough for me. The Vim mode in VSCode is decent enough and works nicely with the theme.


[Question] Future of nova-dependency-container

Based on the unanswered issues, open PRs and the lack of progress (last commit in June 2020), I'd like to know if this project will be abandoned? And if not... is there an existing plan on when we can expect some progress?
I am currently utilizing this package in a client project and want to know if I have to plan some time ahead to maintain my version of the package or if I can expect some progress from the owners.
Thanks in advance :pray:

Although I'm not the owner specifically, I would be willing to try and work through some of the issues/PRs. I do have a full time job which takes up a large amount of my time though so it won't be overnight change. I would like to see @wize-wiz come back into this as well as I'm not really in a place to take over a package completely. I have turned on my notifications though for all activity here so I can be more aware of what's going on.

Also to all contributors that might see this, I'll work on updating the readme (or maybe someone can do it for me), but I think for safety sake, please do not commit any dist js/csss. This poses a security risk as no one is actually going to be reading through the dist versions to confirm it's what it should be. It's also one less step for you as a pull requester, as you don't have to add dist assets.

@ragingdave Yes, I was planning on a comeback for all the packages I've made on github, including maintaining this package. 3 weeks ago, I've quit all my current projects that has been eating up all my time since the last 2 years. I'm still in the middle of organizing everything that has been going on with the lock-down here in Germany, but I should be able to reliably plan some time for this package.

following

following

https://github.com/epartment/nova-dependency-container/issues/188 is a showstopper


Big Play Button still hiding on mobile (Videojs)

Description
The play button is not showing using the library as plugins on videojs
Steps to reproduce
options = {
      controls: true,
      autoplay: false,
      fill: true,
      bigPlayButton: true,
      fluid: true,
      playbackRates: [0.5, 1, 1.5, 2],
      nativeControlsForTouch: true,
      html5: {
          nativeControlsForTouch: true,
          nativeAudioTracks: true
      },
      plugins: {
          wavesurfer: {
              waveColor: '#009fd1',
              cursorColor: 'black',
              interact: true,
              barHeight: 0.2,
              backend: 'MediaElement',
              displayMilliseconds: false,
              mediaControls: true,
              barRadius: 26,
              cursorWidth: 1,
              barGap: 26
          }
      }
  };

Results
Expected
When its a video content without wavesurfer the play button shows but with wavesurfer it does not shows
Actual
The play button button after the cotent loads
Error output
None
Versions
Make sure to include the following versions:
videojs/wavesurfer
videojs version : 7.4.;1
videojs-wavesurfer: https://unpkg.com/wavesurfer.js
Browsers
Safari and Chorme (Both on mobile)
Did not try in any other
OSes
Android and IOs

The big play button is not used in this videojs plugin because it interferes with the wavesurfer.js instance. This is why It's explicitly disabled in the code
If you comment out that check, and recompile, you will end up with this:

It's a button that cannot be clicked, the click events are recieved by the wavesurfer instance instead. Any suggestions to work around this are always welcome.


feat: add swagger endpoints and definitions for environment variables

This PR adds paths and schemas for endpoints specific to site/account environment variables.

It adds:

2 new GET requests
1 new POST request
1 new PUT request
2 new DELETE requests

To generate this yaml, I...

Ran bin/rake openapi:generate in BB
Converted json to yaml
Copied over relevant paths and schemas
Converted OAS3 syntax → OAS2 syntax

Ensured paths don't start with /api/v1
Changed $refs to be #/definitions/thing instead of #/components/schemas/thing
Followed https://swagger.io/docs/specification/2-0 and trusted the linter in my REST client 😅

In terms of testing, I imported this swagger.yml into my REST client, and the new endpoints appeared as expected. I also ran npm run build to generate the HTML file, and things looked good there. We should check the Deploy Preview to make sure that the documentation gets generated correctly too: https://deploy-preview-381--open-api.netlify.app/#operation/getEnvVars.

Just following up on the overview section - since this is the public API docs, are we able to add this note? I noticed none of the other endpoint sections have an overview (even though there's space for it), so I'm not sure if that's a limitation.
[Beta] Endpoints to retrieve, create, update, and delete environment variables. During the beta period, you must opt in to the new environment variable experience using the Netlify UI before you can use these endpoints to set contextual values and specific scopes.
(Sorry if I missed another conversation about this 👀 )

Oops, sorry I missed that @codebyuma! I don't think it's possible to add an overview to a group of endpoints -- taking a look at the swagger docs, I can see how to add a description to the API as a whole (top-level), or to each individual endpoint, but not to a collection of endpoints.

Thanks for checking!
At least all the individual env method descriptions start with [beta], so that part is covered 👍  If you haven't opted in via the UI, what kind of response will you get if you try to use these endpoints?

@codebyuma good Q! The endpoints would respond in the same way, however the changes wouldn't take effect until the site's use_envelope boolean is true. That's a temporary measure until post-beta / GA, when use_envelope would be true by default.

@jasonbarry That's fun 😄 So it would look like you're successfully adding variables with scopes and contextual values for your site to use, but your site actually can't use them?
It would be nice if the API response could include a message about opting in if that's the case. Not sure how much of an edge case this will be though - I assume most people will opt in using the UI before they start looking at the API... 🤔
Tagging @melanierichards in case she has any concerns about the missing overview text

You could consider adding a riff on @codebyuma's caveat to the top of each endpoint. Basically where the [BETA] message is in the screenshot.

Not sure how it'll look but here's some modified text if you want to try it:
Longer:

During the beta period, you must opt in to the new environment variable experience using the Netlify UI before you can use this endpoint.

Shorter:

To use this endpoint, opt into the beta environment variable experience using the Netlify UI.


workflows: rename master branch to main

I believe this is the only code change needed to implement #28.  Marking as draft until the branch rename occurs; this PR should then be merged immediately afterward.

@bgilbert I renamed the branch. We should be good to go.


Correct name of rxen field

The rxen register in the UART had "txen" erroneously set as its field name in the RegFieldDesc constructor.
This resulted in the incorrectly-named rxen register showing up as txen, and thus replacing the correct txen field in the JSON output from the Rocket/Chisel flow.

thanks!


BootDPRO: Hang on "Dolphin Community Edition Tools.pax" Error Handling

Hello,
I used the Build 7.1.1.-7-gb4a4f20c:
when I start the BootDPRO.cmd i got an Hang on "Dolphin Community Edition Tools.pax" got no Errorcodes or .ERROR File.

I solved the Issue on my own with searching the Issues and your sourceCode -->
Download of https://www.scintilla.org/wscite375.zip and extracting the "SciLexer.dll" to "\Dolphin"
I can't turn off my Firewall so i must download the file manual. Please, make a Error and a output from the WEB-Link where a user can download the file directly.
Example: Error, Can't download "https://www.scintilla.org/wscite_Needed_Version.zip", please copy the Link and extract the SciLexer.dll to \Dolphin and restart the BootDPRO.cmd

The download of SciLexer is an over complex solution I put in place to avoid putting a large binary in the repository when I wasn't aware of GFS. I think the best thing to do here is simply to put the DLL in the repo under GFS.

Should be fixed now. Please reopen if not.


BUGS IOS cannot complete scanning in second try

I try to find beacon and in first try to scanning it's work normal. after found beacon and I try to scanning again with same function, it's cannot complete and whenComplete is never execute
ADD NOTE
maybe because permission in ios cannot run twice like this post? https://github.com/Baseflow/flutter-permission-handler/issues/752
List<Region> regions;
        flutterBeacon.initializeAndCheckScanning.whenComplete(() {
          regions = <Region>[];
          if (Platform.isIOS) {
            // iOS platform, at least set identifier and proximityUUID for region scanning
            regions.add(
                Region(identifier: 'BEACON', proximityUUID: proximityUUID));
          } else {
            // android platform, it can ranging out of beacon that filter all of Proximity UUID
            regions.add(Region(identifier: 'com.beacon'));
          }

          // to start ranging beacons
          _streamRanging =
              flutterBeacon.ranging(regions).listen((RangingResult result) {
            // result contains a region and list of beacons found
            // list can be empty if no matching beacons were found in range
            for (var element in result.beacons) {
              i++;
              print("minor:" +
                  element.minor.toString() +
                  ", major:" +
                  element.major.toString() +
                  ", proximityUUID:" +
                  element.proximityUUID.toString());
              if (element.proximityUUID.toString() == proximityUUID &&
                  element.major.toString() == major &&
                  element.minor.toString() == minor) {
                eventAbsen(eventId, eventName, locationName, uuid, wajibBeacon,
                    eventImages, imei);
                break;
                // flutterBeacon.ranging(regions).cancel();
              } else if (i > result.beacons.length) {
                beaconNotFound(index);
                break;
              }
            }
          });
        })

Did you find any solution?

nope

call await flutterBeacon.initializeAndCheckScanning; once anywhere before calling any other method. ( To initialize the LocationManager)
Use PR #118 for now. ( Fixes the [CoreBluetooth] XPC connection invalid  )

any update?


Correct markerClusterGroup capitalization

Nope, readme is ok, it seems you have missed this https://github.com/Leaflet/Leaflet.markercluster/blob/master/src/MarkerClusterGroup.js#L1385