[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/medha-finds-out-the-truth-about-shakuntala/3219496
[jiocinema] Downloading guest token
[jiocinema] 3219496: Downloading playback JSON
[jiocinema] 3219496: Downloading JSON metadata
[jiocinema] 3219496: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3219496: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/74/44/c810a920612811e6af9735cdf1af387b_audio_1652171673011.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030680~acl=/~id=f8774a7c4e394433a7389196a4b6b76f~data=hdntl~hmac=8a846ad90443a19f988df9c4f1538a34b2ac7b0571876d1c5ec36ce4d1098274"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0102-Medha finds out the truth about Shakuntala.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  380.18KiB in 00:00:00 at 747.34KiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0102-Medha finds out the truth about Shakuntala.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0103-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/shapla-rejects-polok-s-offer/3144004']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/shapla-rejects-polok-s-offer/3144004
[jiocinema] Downloading guest token
[jiocinema] 3144004: Downloading playback JSON
[jiocinema] 3144004: Downloading JSON metadata
[jiocinema] 3144004: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3144004: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/74/96/707b832062ee11e6ae8323fe9d60bb48_audio_1651774330864.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030683~acl=/~id=9acd44d2f0d14b9fad27dff29de05c99~data=hdntl~hmac=018191e4699501fdd3662da327925fb6cf752a1d94cc389ed0535607e5acd942"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0103-Shapla rejects Polok's offer.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  388.15KiB in 00:00:00 at 919.87KiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0103-Shapla rejects Polok's offer.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0104-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/agnidev-asks-shapla-to-leave-the-house/3197009']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/agnidev-asks-shapla-to-leave-the-house/3197009
[jiocinema] Downloading guest token
[jiocinema] 3197009: Downloading playback JSON
[jiocinema] 3197009: Downloading JSON metadata
[jiocinema] 3197009: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3197009: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/64/41/40862da0638e11e6bbdd612101c3d96c_audio_1651618425004.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030688~acl=/~id=6cb882c181c54847a3add02f67ea3652~data=hdntl~hmac=61dbcb28a0181315256396cce6aedf895081f1e658ebbf352e0d5c7f52f65a70"
[download] \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0104-Agnidev asks Shapla to leave the house.mp4 has already been downloaded
[download] 100% of  392.46KiB
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0105-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/polok-is-bothered-by-bedh-s-actvities/3118529']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/polok-is-bothered-by-bedh-s-actvities/3118529
[jiocinema] Downloading guest token
[jiocinema] 3118529: Downloading playback JSON
[jiocinema] 3118529: Downloading JSON metadata
[jiocinema] 3118529: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3118529: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/96/43/578ebe70647611e6840ee7197d53c84a_audio_1652096423312.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030692~acl=/~id=463683637be54bf9b420e3c53f7c4653~data=hdntl~hmac=c9540eaed3aa39fd0c894d6af1b5825609db31cd9d7e80722140e1e56f1a5417"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0105-Polok is bothered by Bedh's actvities.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  397.88KiB in 00:00:01 at 391.43KiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0105-Polok is bothered by Bedh's actvities.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0106-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/shapla-challenges-chutki/3146998']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/shapla-challenges-chutki/3146998
[jiocinema] Downloading guest token
[jiocinema] 3146998: Downloading playback JSON
[jiocinema] 3146998: Downloading JSON metadata
[jiocinema] 3146998: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3146998: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/95/62/fe61e380656111e687bb1f006921c293_audio_1651970175629.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030697~acl=/~id=4716ead55ba54eb39d33b917db7af9b3~data=hdntl~hmac=0eb55a888631904a6ebbbc57921b8263e170bcc82d6f7309da5a0be02cbed36d"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0106-Shapla challenges Chutki.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  397.75KiB in 00:00:00 at 671.92KiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0106-Shapla challenges Chutki.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0107-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/bedh-takes-care-of-shapla/3229917']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/bedh-takes-care-of-shapla/3229917
[jiocinema] Downloading guest token
[jiocinema] 3229917: Downloading playback JSON
[jiocinema] 3229917: Downloading JSON metadata
[jiocinema] 3229917: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3229917: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/77/51/de0f90d065ef11e6be9f77f8dcded20f_audio_1652327423383.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030701~acl=/~id=df989f2c9fe3465a85797a9b57a076d2~data=hdntl~hmac=d69dcd20a47d1e13aaad0273362dea40b1c8f376af8701b4bf89890c7bae963a"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0107-Bedh takes care of Shapla.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  396.37KiB in 00:00:00 at 913.22KiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0107-Bedh takes care of Shapla.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0108-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/ajanta-slaps-bedh/3151785']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/ajanta-slaps-bedh/3151785
[jiocinema] Downloading guest token
[jiocinema] 3151785: Downloading playback JSON
[jiocinema] 3151785: Downloading JSON metadata
[jiocinema] 3151785: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3151785: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/39/26/7b4c1d9066d211e68f2d75a080f8de41_audio_1651792225875.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030705~acl=/~id=4b03c80df7984d33a12bb4ecc46f934c~data=hdntl~hmac=fb878f8800db08575c1f072d7c1fe756cc9c2e90a4c8fdaa8630f3c0c15d2928"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0108-Ajanta slaps Bedh!.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  399.74KiB in 00:00:00 at 809.65KiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0108-Ajanta slaps Bedh!.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0109-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/twist-of-fate/3218338']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/twist-of-fate/3218338
[jiocinema] Downloading guest token
[jiocinema] 3218338: Downloading playback JSON
[jiocinema] 3218338: Downloading JSON metadata
[jiocinema] 3218338: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3218338: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/28/19/c5784570684311e683143bbd71a87d2a_audio_1651891779571.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030710~acl=/~id=064fbd867df74e7e91dbe0775ab22789~data=hdntl~hmac=18100573412fc10a3e613d2a7bc9b3a6f8fd093050a9ab122f8ac6baf35ce3e7"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0109-Twist of fate!.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  399.78KiB in 00:00:00 at 734.66KiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0109-Twist of fate!.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0110-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/polok-tries-to-murder-shapla/3165640']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/polok-tries-to-murder-shapla/3165640
[jiocinema] Downloading guest token
[jiocinema] 3165640: Downloading playback JSON
[jiocinema] 3165640: Downloading JSON metadata
[jiocinema] 3165640: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3165640: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/51/40/196f9250693e11e68e8d41ffd0757ab7_audio_1652061741036.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030714~acl=/~id=0444d78a37394879b4992a1d2f1cdec6~data=hdntl~hmac=6df473a873b6c35cbb1dc5a4e64b4339f1a84186135ae7f63195cfffd53c7654"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0110-Polok tries to murder Shapla.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  407.59KiB in 00:00:00 at 899.46KiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0110-Polok tries to murder Shapla.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0111-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/trembling-point-in-bedh-and-shapla-s-love-story/3191163']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/trembling-point-in-bedh-and-shapla-s-love-story/3191163
[jiocinema] Downloading guest token
[jiocinema] 3191163: Downloading playback JSON
[jiocinema] 3191163: Downloading JSON metadata
[jiocinema] 3191163: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3191163: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/65/17/a09aa0c069ee11e688d93381b701e5bc_audio_1651841294373.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030718~acl=/~id=b89309adc81749fea10177cd567b6352~data=hdntl~hmac=24660eaa20fe1109bda23b4ada70b42ef58d5ee051866bcbff3ed51cf33f57ae"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0111-Trembling point in Bedh and Shapla's love-story!.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  399.38KiB in 00:00:00 at 824.31KiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0111-Trembling point in Bedh and Shapla's love-story!.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0112-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/bedh-is-informed-of-shapla-s-death/3224465']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/bedh-is-informed-of-shapla-s-death/3224465
[jiocinema] Downloading guest token
[jiocinema] 3224465: Downloading playback JSON
[jiocinema] 3224465: Downloading JSON metadata
[jiocinema] 3224465: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3224465: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/85/28/d290f9706ada11e6a203a73683af99bd_audio_1651909662146.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030722~acl=/~id=640f0da47c3147c4ad33151072b4670a~data=hdntl~hmac=b6b5e5c8ba738f3eceb1b368f5d8b4c2e781f1fe07479f155d4f13695fbb4b54"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0112-Bedh is informed of Shapla's death.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  393.95KiB in 00:00:00 at 1.04MiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0112-Bedh is informed of Shapla's death.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0113-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/disco-bapi-threatens-to-kill-nitai/3213700']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/disco-bapi-threatens-to-kill-nitai/3213700
[jiocinema] Downloading guest token
[jiocinema] 3213700: Downloading playback JSON
[jiocinema] 3213700: Downloading JSON metadata
[jiocinema] 3213700: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3213700: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/82/81/bbc48a806ba311e6918bf99072ffafa5_audio_1651879547542.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030726~acl=/~id=4b1b2157c6d14284bdc1907d8dc166cd~data=hdntl~hmac=b1e2ac7b064a2b81b272dd3f8e33c2adb1095ff3091976a6f4824acfb0e94448"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0113-Disco Bapi threatens to kill Nitai.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  401.54KiB in 00:00:00 at 1007.89KiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0113-Disco Bapi threatens to kill Nitai.mp4"
[debug] Command-line config: ['-vU', '-c', '-o', '\\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0114-%(title)s.%(ext)s', '-N', '50', '-v', '-S', 'vcodec:h264,res:360,ext:mp4:m4a', 'https://www.jiocinema.com/tv-shows/bene-bou/1/nitai-tries-to-inform-bedh-about-shapla-s-existence/3164675']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [12b248ce6] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92795-gcdbf8847ea, ffprobe 2024-01-01-git-e1c1dc8347-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.2, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[jiocinema] Extracting URL: https://www.jiocinema.com/tv-shows/bene-bou/1/nitai-tries-to-inform-bedh-about-shapla-s-existence/3164675
[jiocinema] Downloading guest token
[jiocinema] 3164675: Downloading playback JSON
[jiocinema] 3164675: Downloading JSON metadata
[jiocinema] 3164675: Downloading m3u8 information
[debug] Sort order given by user: vcodec:h264, res:360, ext:mp4:m4a
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), res:360(360.0), vext:mp4(6), aext:m4a(8), lang, quality, fps, hdr:12(7), channels, acodec, size, br, asr, proto, hasaud, source, id
[debug] Default format spec: bestvideo+bestaudio/best
[info] 3164675: Downloading 1 format(s): hls-1328
[debug] Invoking hlsnative downloader on "https://jc-ak-hlsstreaming.jiocinema.com/vod/definst/smil:vod/51/90/88d3f6606c4311e6aa8edd21fd67365b_audio_1651808045253.smil/chunklist_b1328000.m3u8?hdntl=exp=1719030730~acl=/*~id=c6619690edec4e1eafc27192b13f455c~data=hdntl~hmac=a013e899a351b5000d48cc832dbc69829eb06ffb5e5f887e499a6fbc70979d8f"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 12
[download] Destination: \VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0114-Nitai tries to inform Bedh about Shapla's existence.mp4
[debug] File locking is not supported. Proceeding without locking
[download] 100% of  401.73KiB in 00:00:00 at 1.05MiB/s
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:\VBOXSVR\v2\Colors Bangla\Folders\Bene Bou\video\0114-Nitai tries to inform Bedh about Shapla's existence.mp4"

Looking at the examples you provided, this seems like an issue with the site. For some of the examples, the key request returns a 400 error code. For some, the key returned seems incorrect; thus the file is incorrectly decrypted. These are problems on the site's end, and there is nothing we can do about them.
Also, I would strongly discourage you from using -N 50. That seems far too high a concurrency and might cause with the site/cdn temporarily rate limiting you.

Ok sir, I will try to use -N 8
On Sat, Jun 22, 2024, 3:50 PM sepro @.***> wrote:

Looking at the examples you provided, this seems like an issue with the
site. For some of the examples, the key request returns a 400 error code.
For some, the key returned seems incorrect; thus the file is incorrectly
decrypted. These are problems on the site's end, and there is nothing we
can do about them.
Also, I would strongly discourage you from using -N 50. That seems far
too high a concurrency and might cause with the site/cdn temporarily rate
limiting you.
—
Reply to this email directly, view it on GitHub
https://github.com/yt-dlp/yt-dlp/issues/10225#issuecomment-2183963658,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVMVCDKHKAED45IEXOB2ACTZIVCFNAVCNFSM6AAAAABJVDUSV6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBTHE3DGNRVHA
.
You are receiving this because you authored the thread.Message ID:
@.***>

If yt-dlp calls the m3u8 library function m3u8.loads() then use a regx function before the call.
def preprocess_m3u8(content):
return re.sub(r'FRAME-RATE="(\d+.\d+)"', r'FRAME-RATE=\1', content)
m3u8_content = preprocess_m3u8(m3u8_response.text)
m3u8_master = m3u8.loads(m3u8_content)
Some url m3u8_response.text is 368p instead of 360p:
So, use some logic to solve specific url 360p res selection problem.
like that:
for playlist in m3u8_master.playlists:
resolution = playlist.stream_info.resolution
if resolution and resolution[0] == 640 and (resolution[1] == 360 or resolution[1] == 368):

yt-dlp does not use the m3u8 python package

import os
import re
import time
import requests
import m3u8
import subprocess
from urllib.parse import urljoin
from concurrent.futures import ThreadPoolExecutor
from Crypto.Cipher import AES
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import asyncio
import websockets
import threading
import json
WebSocket handling
m3u8_url = None
mpd_url = None
async def websocket_handler(websocket, path):
global m3u8_url, mpd_url
try:
async for message in websocket:
data = json.loads(message)
if "m3u8Url" in data:
m3u8_url = data["m3u8Url"]
await websocket.send("Received")
elif "mpdUrl" in data:
mpd_url = data["mpdUrl"]
await websocket.send("Received")
except websockets.exceptions.ConnectionClosedError as e:
print(f"Connection closed with error: {e}")
except Exception as e:
print(f"Error handling WebSocket message: {e}")
def start_websocket_server():
new_loop = asyncio.new_event_loop()
asyncio.set_event_loop(new_loop)
while True:
try:
server = websockets.serve(websocket_handler, "localhost", 8765)
new_loop.run_until_complete(server)
new_loop.run_forever()
except OSError as e:
print(f"Port already in use, retrying in 5 seconds: {e}")
time.sleep(5)
continue
threading.Thread(target=start_websocket_server, daemon=True).start()
Path to the ChromeDriver executable
CHROMEDRIVER_PATH = 'chromedriver.exe'
Path to the Chrome extension folder
EXTENSION_PATH = 'chrome_extension'
Create the extension folder if it doesn't exist
os.makedirs(EXTENSION_PATH, exist_ok=True)
Create manifest.json
manifest_content = """
{
"manifest_version": 2,
"name": "M3U8 and MPD Detector",
"version": "1.1",
"background": {
"scripts": ["background.js"],
"persistent": true
},
"permissions": [
"webRequest",
"webRequestBlocking",
":///*"
]
}
"""
manifest_path = os.path.join(EXTENSION_PATH, 'manifest.json')
with open(manifest_path, 'w') as manifest_file:
manifest_file.write(manifest_content)
Create background.js
background_js_content = """
let socket;
function connectWebSocket() {
socket = new WebSocket("ws://localhost:8765");
socket.onopen = function() {
console.log("WebSocket connection established");
};
socket.onmessage = function(event) {
console.log("Received message from server: " + event.data);
};
socket.onclose = function(event) {
console.log("WebSocket connection closed: ", event);
if (event.code !== 1000) {
console.log("Reconnecting WebSocket...");
setTimeout(connectWebSocket, 1000);
}
};
socket.onerror = function(error) {
console.error("WebSocket error: ", error);
socket.close();
};
}
connectWebSocket();
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
if (details.url.includes('playlist_voot_web_premium.m3u8')) {
let message = JSON.stringify({ m3u8Url: details.url });
if (socket.readyState === WebSocket.OPEN) {
socket.send(message);
} else {
console.error("WebSocket is not open");
}
} else if (details.url.includes('master.mpd')) {
let message = JSON.stringify({ mpdUrl: details.url });
if (socket.readyState === WebSocket.OPEN) {
socket.send(message);
} else {
console.error("WebSocket is not open");
}
}
},
{ urls: ["<all_urls>"] }
);
"""
background_js_path = os.path.join(EXTENSION_PATH, 'background.js')
with open(background_js_path, 'w') as background_js_file:
background_js_file.write(background_js_content)
Log paths to verify
print(f"Manifest path: {manifest_path}")
print(f"Background.js path: {background_js_path}")
Check if files are created correctly
assert os.path.exists(manifest_path), "manifest.json was not created"
assert os.path.exists(background_js_path), "background.js was not created"
def preprocess_m3u8(content):
return re.sub(r'FRAME-RATE="(\d+.\d+)"', r'FRAME-RATE=\1', content)
Function to extract title from URL
def extract_title_from_url(url):
match = re.search(r'/([^/]+)/[^/]+$', url)
if match:
return match.group(1)
return "video"
Function to download and process a single URL
def process_url(url, index, download_dir):
global m3u8_url, mpd_url
# Reset the global variables
m3u8_url = None
mpd_url = None

while True:
    try:
        # Set up Chrome options
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument(f'--load-extension={os.path.abspath(EXTENSION_PATH)}')
        # Create a ChromeDriver instance with the specified options
        service = Service(CHROMEDRIVER_PATH)
        driver = webdriver.Chrome(service=service, options=chrome_options)

        try:
            # Load the webpage
            driver.get(url)

            # Wait for the video to load and start playing (adjust the wait condition as needed)
            WebDriverWait(driver, 30).until(
                EC.presence_of_element_located((By.TAG_NAME, "video"))
            )

            # Extract cookies from the browser
            cookies = driver.get_cookies()
            session = requests.Session()
            for cookie in cookies:
                session.cookies.set(cookie['name'], cookie['value'])

            # Wait for the M3U8 or MPD URL to be detected by the extension (max 30 seconds)
            for _ in range(5000):
                if m3u8_url or mpd_url:
                    break
                time.sleep(0.001)

            if not (m3u8_url or mpd_url):
                print(f"Neither M3U8 nor MPD URL found for {url}")
                driver.quit()
                continue

            if mpd_url:
                driver.quit()
                # Download using yt-dlp for MPD URLs
                title = extract_title_from_url(url)
                output_mp4 = os.path.join(download_dir, f"{index:04d}-{title}.mp4")
                subprocess.run(["yt-dlp", "-N", "8", "-v", "-S", "vcodec:h264,res:360,ext:mp4:m4a", "-o", output_mp4, mpd_url])
                print(f"Video saved as {output_mp4}")
                break

            # Download the M3U8 master file with session cookies
            m3u8_response = session.get(m3u8_url)
            m3u8_content = preprocess_m3u8(m3u8_response.text)
            m3u8_master = m3u8.loads(m3u8_content)

            # Debugging information
            print(f"Master M3U8 content for {url}:")
            print(m3u8_master.dumps())

            # Choose the 360p variant stream
            variant_url = None
            for playlist in m3u8_master.playlists:
                resolution = playlist.stream_info.resolution
                if resolution and resolution[0] == 640 and (resolution[1] == 360 or resolution[1] == 368):
                    variant_url = urljoin(m3u8_url, playlist.uri)
                    break

            if not variant_url:
                print(f"360p variant not found for {url}")
                driver.quit()
                continue

            # Quit the driver as soon as the M3U8 URL is found
            driver.quit()

            # Download the M3U8 file for the 360p variant stream with session cookies
            m3u8_response = session.get(variant_url)
            m3u8_playlist = m3u8.loads(m3u8_response.text)

            # Check if the segments are encrypted
            encryption_key_url = None
            iv = None
            for key in m3u8_playlist.keys:
                if key:
                    encryption_key_url = key.uri
                    iv = bytes.fromhex(key.iv[2:]) if key.iv.startswith("0x") else key.iv
                    break

            if encryption_key_url:
                print(f"Encryption key URL: {encryption_key_url}")
                print(f"Initialization Vector (IV): {iv}")
                # Download the encryption key
                key_response = session.get(encryption_key_url)
                encryption_key = key_response.content
                print(f"Encryption key: {encryption_key.hex()}")
                if len(encryption_key) not in {16, 24, 32}:
                    print(f"Skipping URL {url} due to incorrect AES key length.")
                    break
            else:
                print(f"Skipping URL {url} due to: No encryption key found.")
                break

            # Decrypt and download all segments concurrently
            def download_and_decrypt_segment(segment):
                segment_url = urljoin(variant_url, segment.uri)
                segment_response = session.get(segment_url)
                cipher = AES.new(encryption_key, AES.MODE_CBC, iv)
                decrypted_content = cipher.decrypt(segment_response.content)

                segment_filename = os.path.join(download_dir, f"segment_{segment.uri.split('/')[-1]}")
                with open(segment_filename, 'wb') as segment_file:
                    segment_file.write(decrypted_content)
                return segment_filename

            # Use ThreadPoolExecutor to download segments concurrently
            with ThreadPoolExecutor(max_workers=20) as executor:
                segment_futures = [executor.submit(download_and_decrypt_segment, segment) for segment in m3u8_playlist.segments]
                segment_files = [future.result() for future in segment_futures]

            # Concatenate all segments into a single .ts file
            ts_filename = os.path.join(download_dir, f"output_{index:04d}.ts")
            with open(ts_filename, 'wb') as output_file:
                for segment_file in segment_files:
                    with open(segment_file, 'rb') as sf:
                        output_file.write(sf.read())

            # Extract title from URL
            title = extract_title_from_url(url)
            output_mp4 = os.path.join(download_dir, f"{index:04d}-{title}.mp4")

            # Convert the .ts file to .mp4 using ffmpeg
            subprocess.run(["ffmpeg", "-i", ts_filename, "-c", "copy", output_mp4])

            # Clean up segment files
            for segment_file in segment_files:
                os.remove(segment_file)
            os.remove(ts_filename)

            print(f"Video saved as {output_mp4}")

            # Exit the loop if successful
            break

        except Exception as e:
            print(f"Error processing {url}: {e}")
            driver.quit()
            continue
    except Exception as e:
        print(f"Error initializing WebDriver: {e}")
        time.sleep(5)
        continue

List of batch file paths with optional start indices
batch_file_paths = [ r'F:\v2\Colors Bangla\Folders\Chena Achena Mon Jaakey Chaaye', r'F:\v2\Colors Bangla\Folders\Choti Sarrdaarni', r'F:\v2\Colors Bangla\Folders\Dashi', r'F:\v2\Colors Bangla\Folders\Debangshi', r'F:\v2\Colors Bangla\Folders\Dutta And Bouma', r'F:\v2\Colors Bangla\Folders\Gandharva Kumari Amrapali', r'F:\v2\Colors Bangla\Folders\Indrani', r'F:\v2\Colors Bangla\Folders\Jai Jagannath', r'F:\v2\Colors Bangla\Folders\Jai Shri Krishna', r'F:\v2\Colors Bangla\Folders\Kajallata', r'F:\v2\Colors Bangla\Folders\Kanak Kakon', r'F:\v2\Colors Bangla\Folders\Katha Kahini', r'F:\v2\Colors Bangla\Folders\Kawach Mahashivraatri', r'F:\v2\Colors Bangla\Folders\Kena Bou', r'F:\v2\Colors Bangla\Folders\Ki Kore Toke Bolbo', r'F:\v2\Colors Bangla\Folders\Kichu Toh Acheyi Nagin', r'F:\v2\Colors Bangla\Folders\Maa Durga', r'F:\v2\Colors Bangla\Folders\Mahakaali', r'F:\v2\Colors Bangla\Folders\Mahaprabhu Sree Chaitanya', r'F:\v2\Colors Bangla\Folders\Manasa', r'F:\v2\Colors Bangla\Folders\Mongol Chandi', r'F:\v2\Colors Bangla\Folders\Mou Er Bari', r'F:\v2\Colors Bangla\Folders\Mukhoser Araley', r'F:\v2\Colors Bangla\Folders\Naagin1', r'F:\v2\Colors Bangla\Folders\Naagin2', r'F:\v2\Colors Bangla\Folders\Naagin3', r'F:\v2\Colors Bangla\Folders\Naagin4', r'F:\v2\Colors Bangla\Folders\Naagin5', r'F:\v2\Colors Bangla\Folders\Naagin6', r'F:\v2\Colors Bangla\Folders\Nagleela', r'F:\v2\Colors Bangla\Folders\Nayika Number 1', r'F:\v2\Colors Bangla\Folders\Nishir Daak', r'F:\v2\Colors Bangla\Folders\Pita', r'F:\v2\Colors Bangla\Folders\Pran Bhomra', r'F:\v2\Colors Bangla\Folders\Pratham Pratishruti', r'F:\v2\Colors Bangla\Folders\Premer Aagun', r'F:\v2\Colors Bangla\Folders\Resham Jhanpi', r'F:\v2\Colors Bangla\Folders\Shakti', r'F:\v2\Colors Bangla\Folders\Shubho Drishti', r'F:\v2\Colors Bangla\Folders\Sona Roder Gan', r'F:\v2\Colors Bangla\Folders\Sri Sri Siddhidata Ganesh', r'F:\v2\Colors Bangla\Folders\Srijar Sosurbari', r'F:\v2\Colors Bangla\Folders\Suraksha Kabach', r'F:\v2\Colors Bangla\Folders\Tantra Mantra Oshoriri Hatchhani', r'F:\v2\Colors Bangla\Folders\Tin Shaktir Aadhar Trishul', r'F:\v2\Colors Bangla\Folders\Tumi Ele Taai', r'F:\v2\Colors Bangla\Folders\Tumii Je Amar Maa', r'F:\v2\Colors Bangla\Folders\Tumpa Autowali' ]
for batch_file_path in batch_file_paths:
# Check if a start index is specified in the path
match = re.match(r'(.+)+(\d+)$', batch_file_path)
if match:
path, start_index = match.groups()
start_index = int(start_index)
else:
path = batch_file_path
start_index = 0
# Path to the batch file
batch_file_path = os.path.join(path, 'batch.txt')

# Directory of the batch file
batch_dir = os.path.dirname(batch_file_path)

# Create the "video_downloader" folder in the batch file directory
download_dir = os.path.join(batch_dir, 'video_downloader')
os.makedirs(download_dir, exist_ok=True)

# Read URLs from batch.txt and process each URL
with open(batch_file_path, 'r') as batch_file:
    urls = batch_file.readlines()

for index, url in enumerate(urls[start_index:], start=start_index + 1):
    url = url.strip()
    if url:
        while True:
            try:
                process_url(url, index, download_dir)
                break
            except Exception as e:
                print(f"Error processing URL {url}: {e}")
                time.sleep(5)
                continue

This is my download script and I am successfully downloading mpd and m3u8 without any errors. Even the URLs which are showing error in yt-dlp, I can download them successfully by the script.


Revert "build(deps): bump codecov/codecov-action from 3 to 4"

Reverts lilboards/lilboards#1387
https://github.com/codecov/codecov-action/issues/1089

Codecov Report
Patch and project coverage have no change.

Comparison is base (1076809) 100.00% compared to head (9f24620) 100.00%.
Report is 1 commits behind head on master.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##            master     #1388   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           95        95
  Lines          946       946
  Branches       134       134
=========================================
  Hits           946       946

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


chore(tests): add basic E2E tests with dependency on @podman-desktop/tests-playwright npm package

This brings e2e tests into this repository. Fixes #76
To run the tests, you need to have podman-desktop cloned.
Then:
git clone podman-desktop
cd podman-desktop
yarn;yarn test:e2e:build
cd ..
cd podman-desktop-redhat-account-ext
yarn
export PODMAN_DESKTOP_ARGS=/path/to/podman-desktop
yarn test:e2e

Hello I'm not sure to need to have another yarn workspace for simple extension.
I mean, it works well on big repositories
but here extension is quite simple so I'm wondering if we should not have a single package.json file (tests dependencies being in devDependencies anyway)
and just a e2e-tests folder with sso-extension.spec.ts file

Done! Hope to got it right, my thinking was similar, but I wanted to stick to a solution we have elsewhere. but this is better.

if I understand well, it's not testing what is developed / stored in the source code of this repository, only the published version into the registry ?

That is correct. It pull latest image of the extension.
We will follow up with PR check same way as it is done with bootc.

@jeffmaury I am running them on linux now. I will try windows as well.


Support YAML file as a value for the -p argument

It can be nice to have:
jcli job build -p  job-name

DONE. You can use it by providing the -y flag.
More info can be found here: https://github.com/bregman-arie/jcli/blob/master/doc/job.md


⚠ Bofrost.de has degraded performance

In c2726ee, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1218 ms

Resolved: Bofrost.de performance has improved in 3235f4e.


pre-commit: Add libiconv for tests on x86_64-darwin

Note: not a checkInput, because we need
this dependency in the role of a build
input during tests: library path, etc.
Solves
E                 = note: ld: library not found for -liconv
E                         clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
E
E
E               error: failed to compile `rust-hello-world v0.1.0 (/private/tmp/nix-build-python3.9-pre-commit-2.18.1.drv-1/pytest-of-nixbld4/pytest-0/popen-gw3/test_rust_hook0/0/.pre-commit/repomj5itq00)`, intermediate artifacts can be found at `/private/tmp/nix-build-python3.9-pre-commit-2.18.1.drv-1/pytest-of-nixbld4/pytest-0/popen-gw3/test_rust_hook0/0/.pre-commit/repomj5itq00/target`
E
E               Caused by:
E                 could not compile `rust-hello-world` due to previous error

pre_commit/util.py:146: CalledProcessError

in test case
FAILED tests/repository_test.py::test_rust_hook

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

oops me and @jonringer missed the failure in https://github.com/NixOS/nixpkgs/pull/167114 https://github.com/NixOS/nixpkgs/runs/5822993769
if https://github.com/NixOS/ofborg/pull/596 is merged then skipped jobs would be skipped instead of neutral and only failed jobs would be neutral


Power Creep operates Obs

Highest level PC also operates Obs when Obs requests operation

If full of ops, deposit them all in the terminal (or maybe all but 100)
If all conditions right for op factory and creep has less than 100 ops, fill up on ops from terminal instead
(Then the creep will use 100 on op factory, because that check comes before the check to deposit ops in terminal)


Django 1.9 support

I'm on my way of upgrading a project that uses django-sendfile to Django 1.9. Is Django 1.9 already supported? Thanks in advance

Well send file is pretty small.  I don't really see any reason why not.
All it really does is set some headers on the response object.
However I've not tried it myself.  I'd suggest trying it and reporting
back here.
On 16/02/16 03:18, Vladir Parrado Cruz wrote:

I'm on my way of upgrading a project that uses |django-sendfile| to
|Django 1.9|. Is |Django 1.9| already supported? Thanks in advance
—
Reply to this email directly or view it on GitHub
https://github.com/johnsensible/django-sendfile/issues/50.

Thanks for your quick response @johnsensible. I agree, ok I will do it myself, and I will post an update here ;)

Worked like a charm with Django 1.9.2 @johnsensible :). I just did the tests ;)

It works with Django 1.10 as well.  Might be worth updating the documentation.


I know this isnt a true problem but...

I know this isn't an issue really, but could you please add an update for 1.13? Please? Is there any way possible? I'm begging you! ); I'm sure other people would embrace it quickly.

Forge is not available for 1.13, so no.


Added section for the graph: quick start full guide

This PR contains changes for:

mkdocs.yml: Added navigation item conforming to alphabetical order
tools/thegraph.md: Contains a full walk through on how to setup a subgraph

Please let me know if anything needs to be updated to get published.

@alinobrasil  can you please make sure the commit is signed? https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification

@vestival I just added a signed commit!

All commits are signed now @vestival

🫠


FillsService GetAllFillsAsync doesnt work anymore

As the title says, now it requires a product_id or order_id.
But the params for input are only limit and no_pages.

hey @prozerran. this method was marked obselete a few years ago. I've finally removed it with https://github.com/dougdellolio/coinbasepro-csharp/commit/5af10a807b2ba480676e33541e873e37e316c498. Please use the other methods available to request by product_id or order_id (https://github.com/dougdellolio/coinbasepro-csharp/blob/master/CoinbasePro/Services/Fills/IFillsService.cs)
thanks!


Sorry about the all of the request

Sorry about the flood of request. I just requested every mod I use. I was not in Minecraft, so I did not check them to see if they had built in support. I just went through and closed the one that already had there own support.
I am ok with it if you ignore them, but i hope you don't.

Don't worry about making too many requests! I've unfortunately been otherwise occupied, but I have more time now so I will try to work through all of your requests - and feel free to make more. 🙂


Add GitHub action that builds & uploads slides.tex as a PDF on every push

I added a GitHub action that builds the slides.tex file and outputs the PDF as an artifact whenever something is pushed to this repository. This makes it easy to get the slides PDF without setting up a LaTeX environment and building the files manually. I successfully tested the action on the current master, you can see the results in my fork under the Actions tab.
The slides.pdf can be downloaded as follows:
1. go to Actions:

2. select the most recent CI build (or any older one)

3. click on the Artifacts button, it shows a link to download the .zip file that contains the slides.pdf

Apparently GitHub deletes artifacts after 90 days so an alternative would be to push the results back to the repo using https://github.com/ad-m/github-push-action. This requires more setup though because a GitHub token must be setup and passed to the workflow.

Apparently GitHub deletes artifacts after 90 days so an alternative would be to push the results back to the repo using https://github.com/ad-m/github-push-action.

Actually, this behavior is desired. Since artifacts - by definition - can be built from the source files from a defined commit in the repository, there is no point in keeping them versioned. Your commit is still immensely useful - instead of externally building slides.pdf for a release, the artifact can be used directly (in which case it will be re-uploaded and will stay in the release indefinitely). I'd been thinking about implementing that myself, but didn't get around to it, so I'm quite thankful for this pull request ;)


Translate webgpu-memory-layout.md into korean

please remove the js file. Thanks. It should use the existing one. There was a bug in the builder I fixed just a few moments ago.

I removed it and modifed script's src path. Thanks. :)

You should put the path back so it's the same as the english. Then commit that. Then
git fetch https://github.com/gfxfundamentals/webgpufundamentals.git main
git rebase FETCH_HEAD
npm ci
npm run build
npm start

That should work I hope.

It works great, thanks! 👍


Add HeatmapSeriesCanvas

Implemented HeatMapSeriesCanvas renderer.
NOTE:
I can across a bug when swapping over to this using where when the data is updated the CanvasWrapper gets the old props for the first call and then the next update it will receive the new props. Seems to be a canvas wrapper bug, but I wasn't able to track it down yet.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey @nbardy
This is an interesting idea! I like what you have so far. Would you mind adding a showcase example so that the differences can be checked? (see this file for example https://github.com/uber/react-vis/blob/master/showcase/plot/bar-chart.js) It can just be one of the old heatmap series examples but with a button to switch on and off from canvas mode.
I think we should address that canvas old props bug in another PR, mind filing an issue about it?

Oh also, if you rebase the build will probably fix it self


Add support for AAD v2 in adal package

I am creating this issue to collect your thoughts about AAD v2. The current implementation supports AAD v1, but would be nice to have some support for v2 which implements the OIDC specs.
https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-compare
I am not sure if there are any particularities in AAD v2, or one can use an exiting Go package such as https://github.com/coreos/go-oidc to acquire an id_token.
cc  @colemickens @marstr

I've found AADv2's OIDC support to be very straight forward -- for example, the OIDC plugin in kubectl was able to refresh id_tokens, etc with AADv2 out-of-the-box.
A (better) open source Golang OAuth2 client should be able to talk to AADv2 for OAuth. Since Azure stuff can't use AADv2,  Go-Autorest and Azure SDK use our custom OAuth client. Hopefully stuff that is targeting AADv2 can use the popular community packages for OAuth/OIDC.
Not to say I'm opposed to having AADv2 support in here too, it just might not be worth it.

Thank you @colemickens, it's fair enough. I think the AADv2 implements the OAuth 2.0 on top of OIDC which I am not sure if is mainstream.
https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds
The OIDC client will request access to a resource by passing  the URL in a scope parameter among other things like permissions.

Sure, OIDC flow is like OAuth2 but more standardized (endpoint discovery, etc). And requesting an id_token happens by requesting a specific scope... but any other resources included in the scope become part of the access token, not the id_token. In that sense, it's just a normal OAuth2 flow with an OIDC-capable/compliant endpoint.
If you look through the OIDC spec, it looks like OIDC == OAuth2 spec + id_token + endpoint discovery. Most of the major OAuth2 providers also implement OIDC (at the very least discovery, but many of them full fledged id_tokens, etc).

We are moving to AAD v2 as part of our track 2 SDK work.  It will be handled via our azidentity module.
We won't be doing anything for track 1 in go-autorest so I'm closing this.

@jhendrixMSFT I've bit a bit out of the Azure loop. Does this mean ARM accepts AADv2 tokens now? It didn't for the longest time? Thanks for any information, cheers!

@catalinaperalta can you answer the question @colemickens asked above?
@tombuildsstuff my POR is to have a preview of a handful of management plane modules ready this month.  These are currently staged here if you'd like to take a look.  I'd love to get your feedback although let's track any concerns in a new issue in the SDK repo.  Also, the module import issue has been resolved in go-autorest, and now that we understand the root cause it won't be a problem for track 2.


adonis-app ENOENT error on local machine

Brief Description
I simply cloned the repo of adonis-app to my local machine and then run the following two commands.

npm install
npm run serve
Here I get error 'ENOENT' with code '-4058' and the description says 'no such file or directory, open C:\PyCharm\vue\vue-adonis\adonis-app.env'
The file exists.

Screenshots (if any)

Environment file name must be ".env". Can't find the file.

Hey :wave: !
Adonis require the .env files to works correctly.
You can copy paste the .env.example.
Also, you must use the official CLI to install new Adonis application :)

The problem is solved. I copied the file and then renamed it to .env
Thanks!


"Planning-Cadastre" needs to be "Planning_Cadastre"

AGS does not allow for "-" so Planning-Cadastre schema needs to change to "Planning_Cadastre" and the category needs to be renamed in WP.

Above changes made. Issue closed.


When removing all layers must delete all widget data

If the widget data is not deleted then errors can occur if the widget is reopened. As connections are still connected etc...
At the moment the dockwidget is removed but this doesn't delete the widget

This problem was only in debug  and seemed to be caused the stepping buttons from the debugger.


fix: try to get dist dir included in published pkg

:tada: This PR is included in version 1.0.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


The vm_id coming in from API is a string.

Followup of https://github.com/ManageIQ/manageiq/pull/17627.
Fixes https://github.com/ManageIQ/miq_v2v_ui_plugin/issues/471.
@miq-bot assign @gmcculloug
@miq-bot add_label enhancement, transformation
cc @AparnaKarve @bzwei

LGTM - thanks @lfu !!

@bzwei @lfu Just so you are aware, this change with vm_id under config_info.actions is going to impact our frontend code in a big way.
Before -
"options": {
  "config_info": {
  "transformation_mapping_id": "3",
  "vm_ids": [
    "1",
    "2"
    ]
  }
}

After -
"options": {
  "config_info": {
  "transformation_mapping_id": "3",
  "actions": [
  {
      "vm_id": "4",
      "pre_service": false,
      "post_service": false
   }
  ]
 }
}

We have a couple of places in the code where we reference vm_ids directly from config_info -- all those places would now have to be rectified.
Not to mention, none of our existing Plans are going to work because of the above change.
Just wanted to check if it would be possible to re-introduce the vm_ids array under config_info?
Or the expectation going forward is that the old plans are not supposed to work?
Also, would this change be backported to Gaprindashvili?

v2v feature is not officially released. I don't think we have to maintain backward compatibility. Please ping PM if it is a concern.
Sorry it requires more front end code changes, but it is not reasonable to keep vm ids and playbooks separate.

BTW, you can omit
      "pre_service": false,
      "post_service": false

if the value is false.

@AparnaKarve Are you ok with @bzwei response here or do we need to discuss?

@gmcculloug I think we can merge this.
Would this be backported to Gaprindashvili?

Just got the confirmation that we are planning on supporting pre and post playbook in 5.9.4, which means, this PR and https://github.com/ManageIQ/manageiq/pull/17627 should be gaprindashvili/yes.
Thanks.

@miq-bot add_label blocker

If this can be backported, please add the gaprindashvili/yes label

@miq-bot add_label gaprindashvili/yes

Gaprindashvili backport details:
$ git log -1
commit c217a7b63a89deadc6abddad450d2bd380200dab
Author: Greg McCullough<EMAIL_ADDRESS>Date:   Mon Jul 9 16:10:19 2018 -0400

    Merge pull request #17674 from lfu/v2v_pre_post_ansibile_service

    The vm_id coming in from API is a string.
    (cherry picked from commit 1bb13c5e8d627d50b9cede9505c43392f11f3bec)

    https://bugzilla.redhat.com/show_bug.cgi?id=1608420


Add typescript types

Thanks for this awesome project. It would be great if you could add typescript types.

Is this project dead? I just discovered it as I had done something simmilar (but significantly inferior) for my project: https://discord.com/channels/595317990191398933/773219443911819284/902760207212494889

Nope, not dead... just development was occurring in parallel to verify it was ready for production and harden the API.
v1.x is hopefully releasing today, perhaps with slightly incomplete docs, but the semi-final API.


Unreachable iOS video path

Hi. I can't find video's path. Could you please save the video to a different location Photo Library?

@stathisiakovidis You will need to write your own handler to handle the saving of the data. I am using MediaLibrary from expo to do this. e.g.
https://docs.expo.dev/versions/latest/sdk/media-library/
e.g.

// Top-level module import
import * as MediaLibrary from "expo-media-library";
const saveImage = async (uri) => {
  try {
    // Request device storage access permission
    const { status } = await MediaLibrary.requestPermissionsAsync();
    if (status === "granted") {
    // Save image to media library
      await MediaLibrary.saveToLibraryAsync(uri);

      console.log("Image successfully saved");
    }
  } catch (error) {
    console.log(error);
  }
};

and call this with the url handed from this library. this will save the video to the users photos.


Documentation usage of "containers" term can confuse user

I'm reporting a documentation issues who hit me in the past; today I found that a customer has been confused in the same way, so I think that something can be done.
The documentation says:

dragula(containers?, options?)
By default, dragula will allow the user to drag an element in any of the containers and drop it in any other container in the list...

The term containers here is not clear. You can be confused and try to pass to dragula a list of containers that match draggable elements.
In brief: if I have something like...

element 1

element 2

...you can be confused and try to call dragula(document.querySelector('element')).
What probably confuses most: in a simple usecase you only have one container of draggable elements, for a very simple example of usage will be:
dragula([document.querySelector('container')])

But you got an error, as you must to pass an array.
So: my suggestion is that documentation provides an overview of HTML used.

document.querySelector('container')
is wrong
document.querySelector('.container')
is correct


Fixes #1402, fixes #1404 - Typescript HTTP Hello World example issues

Feature or Problem
This PR fixes two small issues in the Typescript HTTP Hello World example:
Issue #1402
In the Wasmcloud HTTP Hello World for Typescript, the doc says to use wash new actor to scaffold the project starting from the GitHub Wasmcloud Typescript example folder.
The command fails, as project-generate.toml file is missing. The file exists for the other langages examples.
Issue #1404
The documentation asks to deploy the application with wash app deploy wadm.yaml, but in the repository, the is named typescript-http-hello-world.wadm.yaml instead of wadm.yaml
Related Issues
https://github.com/wasmCloud/wasmCloud/issues/1402
https://github.com/wasmCloud/wasmCloud/issues/1404
Release Information
next
Consumer Impact
No real impact, besides allowing people to follow the doc and try the example
Testing
After adding the file, I was able to create the Typescript project
Manual Verification
I used my fork as source for the wash new actor program:
$ wash new actor --git lostinbrittany/wasmcloud --subfolder examples/typescript/actors/http-hello-world --branch issue-102 hello o
🔧   Cloning template from repo lostinbrittany/wasmcloud subfolder examples/typescript/actors/http-hello-world...
🔧   Using template subfolder examples/typescript/actors/http-hello-world...
🔧   Generating template...
[ 1/60]   Done: .gitignore
[ 2/60]   Done: .nvmrc
[ 3/60]   Done: README.md
[ 4/60]   Done: index.ts
[ 5/60]   Done: package.json
[ 6/60]   Done: pnpm-lock.yaml
[ 7/60]   Skipped: project-generate.toml                                                                                [ 8/60]   Done: tsconfig.json                                                                                [ 9/60]   Done: types/wasi-clocks-monotonic-clock.d.ts                                                                                [10/60]   Done: types/wasi-http-types.d.ts
✨   Done! New project created /Users/horacio/git/wasmcloud/ts/hello

Project generated and is located at: /Users/horacio/git/wasmcloud/ts/hello

I also used it to deploy the app:
$ wash app deploy wadm.yaml

Successfully deployed model typescript-http-hello-world v0.0.1

Thanks for the fast response!! 😊
I have rebased and done the signoff 👍
I have also changed the rule in package.json

Thank you @LostInBrittany!


Component syntax questions

Awesome I am loving it so far! Just one question regarding the syntax:
Looks like all components have a single primary attribute used for representing the content, for example in case of an image we have an image url, like so:
image image_url("rails-logo.png") do
  style do
    align "center"
    padding "30"
  end
end

I have a couple of questions regarding the syntax, especially about the primary attribute
1. What happens if we want to represent a component that doesn't have a single primary attribute?
For example, textfield has a name and a value attributes which are both mandatory.
Also map has two attributes that represent content--region and pins--which in turn have their own child attributes.
2. How to upgrade/migrate components?
Let's say we initially created a label component to take text as the primary attribute. The current syntax would be:
label "Hello world" do
  style do
    color "#ff0000"
  end
end

What if for some reason we want to change the attribute name to content while deprecating the text attribute (BUT NOT breaking all the old code).
In case of Jasonette, you can simply add another attribute to the object and it will work for both content and text attributes. For example, below code would work for older versions as well as the newer versions. Older ones will just look at text and the newer ones will just look at content. Gradually we can phase out text.
{
  "type": "label",
  "text": "Hello World",
  "content": "Hello World"
}

I may be misunderstanding the code but I think with the current syntax structure, every time some attribute gets deprecated we will need to update this library to handle the new mapping correctly.
For example in the following code, if Jasonette adds a content attribute in place of text (not saying it will, I'm just making a hypothetical point), we will need to come back and update this code to make sure caption maps to content as well as text. (Whereas if we treat text the same as any other attribute and leave it up to the with_attributes line, there's nothing to maintain)
    def label caption=nil
      item = Jasonette::Base.new(@context) do
        text caption unless caption.nil?
        type "label"
        with_attributes { instance_eval(&::Proc.new) } if block_given?
      end
      append item
    end

Maybe there's a good way to do this with the current syntax I'm totally missing. Please let me know.

To point #1, components that have two mandatory fields, it's as simple as having two parameters.  Or we can remove that part of the syntax altogether.  The primary motivation for me was that I wanted be able whip up interfaces fast, even if I haven't thought just what each label's action's going to be, yet.  For example:
items do
   label "foo"
   label "bar"
end

Even so, it was my expectation that most often developers would opt to do:
label do
   text "Foo"
   # ...
end

So this might be syntax sugar worth omitting to avoid maintenance headaches down the road.  After all, now that I think about it, could've easily done quick labels as:
items do
   label { text "Foo" }
   label { text "Bar" }
end

To point #2, handling deprecations....well, it's my hope Jasonette's implementation will solidify relatively quickly and minimize this issue altogether.  But even so, first parameters plugging a specific attribute actually helps "old code" not to break on such deprecation changes.  Lets say you renamed the attribute for label components from "text" to "caption".  Then if developers were using the label "foo" do ... format, then if we updated the gem to plug caption instead of text to match new Jasonette structure, then the developer's project code wins in this case.
So I guess the fundamental question here is, "do we want to support parameters on component builders or not?"  My general feeling is, yes, support it where it makes sense, otherwise, don't.  In the case of map, my natural inclination would be to NOT have parameters on the map builder since the mandatory fields aren't scalar properties anyway.

Yup as a user, I'm totally fine as long as there's an option to do both and use the simpler version as a syntactic sugar :)  👍


⚠ Bofrost.de has degraded performance

In 7fd76ae, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1514 ms

Resolved: Bofrost.de performance has improved in 5b6e89b after 7 minutes.


Bug with the replacement of $exec value

If $exec has 2 keys similar, like:
$exec.example = "123"
$exec.exampleLonger "abc"
and I use $exec.exampleLonger somewhere, I get "123Longer"

If $exec has 2 keys similar, like: $exec.example = "123" $exec.exampleLonger "abc"
and I use $exec.exampleLonger somewhere, I get "123Longer"

what :thinking:

Exec arguments:
{     "example": "123",     "exampleLonger": "abc" }

Repeat after me:
{
  "example": "$exec.example",
  "exampleLonger": "$exec.exampleLonger"
}

But, with exec args:
$exec.exampleLonger

example

hmm, so it must have something to do with nested values and tokenization :thinking:


Enhance nav display in RTL version

in the RTL version when hovering over the "جامعه" menu in the event page the sub-menu will go below the page title.
It's better to create a new UI but for now, it will fix it.

Thanks @surenachiron


Perf improvements Part 2

@Carson-Carlisle-ZocDoc @daniel-meismer-zocdoc @david-chenevert-zocdoc @eliah-hecht-zocdoc
Adds a cache for the reflection in DataTypeConverter.Convert. Apparently this is pretty expensive, I saw approx a 60% improvement for nullable types.
Before

After

:+1:

:+1:


Create role for android-file-transfer

Solved via https://github.com/machippie/android-file-transfer


Server Machine Dataset description

Could you please give me the original dataset of "server machine" dataset? Or please describe how first the data looks like?
I have no idea how the data looks like. I opened one file in train folder
Here is the first line of the file:
0.032258,0.039195,0.027871,0.024390,0.000000,0.915385,0.343691,0.000000,0.020011,0.000122,0.106312,0.081081,0.027397,0.060266,0.085018,0.122516,0.000000,0.000000,0.062195,0.041221,0.043242,0.031607,0.533195,0.010224,0.011195,0.009274,0.000000,0.036625,0.000000,0.004298,0.029993,0.022131,0.000000,0.000045,0.034677,0.034747,0.000000,0.000000

Hi, I will see if it’s possible to reveal the original data. But the basic idea is that each row stands for the information of a time step, and each column stands for a certain metric.

For that, I know. Please reveal your original data with me. Maybe you can send it via my email<EMAIL_ADDRESS>Thank you!!!

Sorry, we can only disclose the desensitized data (as is in the repository), because the original data involves some confidentiality problem. I hope you can understand that.

Revealing the original data shows the effectiveness of OmniAnomaly.

You should reveal the dataset, at least to me


Notifications for incoming invoice payment and keysend - Windows

Task
Add push notification on windows for keysends and incoming invoices.
Files involved:
SphinxRepository.kt
On fun onSocketIOMessageReceived implement SphinxSocketIOMessage.Type.InvoicePayment and SphinxSocketIOMessage.Type.MessageType.KeySend and send notification using sphinxNotificationManager.notify as on fun showNotification with the following format:
Invoice Payment
Title:
Invoice Payment Received
Text:
Amount: 1 sats
Memo: Test Memo
Keysend
Title:
Keysend Received
Text:
Amount: 1 sats

is this closed ? @tomsmith8

Nope, I can assign!

Closed by #248


Scanning french vaccination certificate QR Codes (tous anti-covid app)

Current Implementation

I have been vaccinated in france and have a french certificate for the vaccination. When I try to scan the corresponding QR Code, I receive an error message VC_PREFIX_INVALID. The second Barcode Code that is provided on the certificate cannot be scanned at all (it's not a QR code and it's labeled as 2D-DOC)
Suggested Enhancement

It would be great if I could scan and store my french vaccination certificate in the Corona warn app, so I can use the app to certify my vaccination in germany using the app.
Expected Benefits

It does not matter where someone was vaccinated, the virus does not stop at any country border. IMHO the app should enable as many vaccinated people as possible (within the EU) to be used to certify their vaccination digitally.

@devsnd
Did your French vaccination certificate look anything like the example shown in https://www.coronawarn.app/en/faq/#vac_cert_invalid

There is also a Belgian example shown in https://ec.europa.eu/health/sites/default/files/ehealth/docs/covid-certificate_paper_guidelines_en.pdf (Certificat numérique européen COVID).
When was your French certificate issued? In Germany the EU compatible certificates started being issued on June 14, 2021 (apart from a few earlier certificates produces as part of the pilot project). So in Germany any QR code which was issued before June 14, 2021 is very likely to be incompatible with the scanning built into Corona-Warn-App and CovPass-App. I don't know the dates for France though.

Note also from https://ec.europa.eu/info/live-work-travel-eu/coronavirus-response/safe-covid-19-vaccines-europeans/eu-digital-covid-certificate_en#timeline
"The certificate will be introduced in EU Member States. Countries can start issuing and using it already and it will become available in all EU Member States as of 1 July 2021"
and further down that page it shows France "Technically ready to connect to the EUDCC gateway" however it says "NO" against "Effectively connected, issuing and/or verifying at least one EUDCC (vaccination, recovery, negative test)".

The Bar-code you scanned is not a valid EU certificate. France is planning to start with the EU certificates at 22.06.21

Hey Mike,
Thanks for your detailed response!
My certificate does not look like the one you have posted: I did receive my second shot at the end of may, so therefore I probably still have the french national vaccine Certificate, instead of the EU cert, which is unfortunate.
Does that mean that I have to get a EU certificate from the french government instead? And if so, it would be great if the app could point the user in the right direction.
What would be the impediments to support the french style QR codes in the current app? I'd be willing to work on a PR to get this implemented if in any way possible. But I surely would need some pointers how exactly to get there.

Hi Tom @devsnd
According to https://www.schengenvisainfo.com/news/frances-covid-19-vaccine-passport-to-be-updated-on-june-22/ your certificate in TousAntiCovid should get updated tomorrow. I would wait and see what happens first.

Hi I have the same issue got my 2nd vaccination 21/6 & received QR code.  Each time I scan the code it tells me that its not authentic.  I have tried everything to resolve....any suggestions that would help me get this onto my tousanticovid app

@MissinstaPam

I have the same issue got my 2nd vaccination 21/6 & received QR code. Each time I scan the code it tells me that its not authentic. I have tried everything to resolve....any suggestions that would help me get this onto my tousanticovid app

Which country issued your QR code? France or Germany?
If you are asking about putting a German (EU compatible) vaccination certificate into the TousAntiCovid App you probably need to check with the support for TousAntiCovid App to find out if they have gone live and are ready to accept EU certificates already.

no its a french one wanting to put into the french app

@MissinstaPam
Please contact the Support of the TousAntiCovid app in this case.
Thanks!

yes I did yesterday but haven't received any response other than the tech people are looking into it.  I am trying to avoid going back to the vaccination centre to find out its an issue with my phone :(  but I have even changed my region to France (despite me being Irish with an Irish phone contract)
thanks for the response, I guess its a waiting game

@MissinstaPam

no its a french one wanting to put into the french app

Since this issue list is about the German Corona-Warn-App, we can't really help you with the French TousAntiCovid app.
TousAntiCovid on the Google Play Store lists the web site as https://bonjour.tousanticovid.gouv.fr/ and the support address as<EMAIL_ADDRESS>There is also a link to https://attestation-vaccin.ameli.fr/.
I found on https://www.ameli.fr/assure/covid-19/vaccination-contre-la-covid-19/lattestation-de-vaccination-certifiee-en-pratique
"When will the vaccination certificate be available for travel?
From June 23, it will be possible to download its certificate of vaccination certified in accordance with European standards, with English subtitles, from the Health Insurance teleservice. This certificate will be part of the evidence authorized for travel within the European Union as of July 1."
so it looks as though one more day of patience is needed for people vaccinated in France to be able to get a certificate which is compatible with the German Corona-Warn-App.

@devsnd Did the automatic update in TousAntiCovid work for you?

Hello @devsnd ,
According to the European overview for EU Covid Certificates, France should be connected to the system by now. You should be able to get a certificate compatible to the EU system.
Unfortunately, I don't know how France handles the issueing of new certificates, so I can't give instructions on how to proceed. Maybe a Frenc government website has more infos?

Corona-Warn-App Open Source Team

So the tousanticovid app now supports reading the new format, but my certificate inside of the app is still in the old format. I'll monitor if the certificate will be updated within the next few days and also try the support from the tousanticovid app to find out if there is something I still need to do to get it updated.
Once I have the EU Cert, I will report back if i can transfer it from the french app to the German one. So if you don't mind I'd like to keep the issue open in the meanwhile (I hope that doesn't negatively impact any support KPIs or something 😬)

This ha no negative impact. The support of the French codes is a very valuable information

Hi all there was an issue in France with certificates issues on Monday 21/6 as France changed over the new system on Tuesday 22/6! In order for me to rectify this I could print it again on Amelie.fr but as I am Irish I am not in the French health care system I returned to the vaccination centre today Sunday 27/6 where I got a new certificate in the new format & this is now visible in the App wallet of Tousanticovid! Issue resolved

In France, the QR in EUDCC format can be obtained from Ameli. It shows up correctly when added to the CWA app.

Hi David, as stated above this solution will only work if you are in the French Healthcare system.  I got vaccinated as an EU Health Insured person.  Hopefully this issued only applied to certs issued the day before the changeover to the new format and hopefully everyone with the same issue as me has had the matter resolved

@devsnd  See https://github.com/corona-warn-app/cwa-wishlist/issues/560#issuecomment-869163083

With the latest TousAntiCovid update a conversion from 2D-DOC to the EU conversion is possible directly in the app. Adding it to CWA was no problem either!

@devsnd
Did you have any success in the meantime?

With the latest version of the TousAntiCovid app, I was now able to convert my certificate. Just tap on the three dots in the upper right corner of your DOC-2D certificate (a small option menu appears) and tap convert. After the conversion, you can export the certificate as an image. You can then print that image or send it to other device, so that you can scan it again. Scanning the exported EUDCC in the german corona warn app works perfectly.
Thanks to everybody for your responses and insights. I will close this issue now as my specific problem has been solved. Similar but distinctly different problems should be tracked in a new issue.
Thanks once more and have a nice day. 🎉

Thanks for reporting! Great that it works for you now.

Corona-Warn-App Open Source Team

@devsnd Thanks for reporting and contributing here. Best wishes,

Corona-Warn-App Open Source Team


consul.kv.keys returns always undefined when an error-handling function is passed

Using version 0.31.0
My method:
async keys(path: string): Promise<string[]> {
    const data = await this.consul.kv.keys(path);
    return data;
}

works fine. However if the path does not exist, a 500 error will be thrown, crashing the application.
If  I pass an error handling function:
async keys(path: string): Promise<string[]> {
    const data = await this.consul.kv.keys(path, function(e) {
      console.log(e);
    });
    return data ? data : [];
}

then calling it with a non-existing path will not make the application crash, because the error will be properly handled. However this will make all calls always returning undefined (even with existing paths).

You shouldn't mix styles, if you want to use async/await you should use try/catch, if you want to use promises then pass in two functions to then or call catch, and if you want to use callbacks then check for error.
Async/await
const consul = require('consul')({ promisify: true });

const mainAsync = async () => {
  var results;
  try {
    var results = await consul.kv.keys('test');
    console.log(results);
  } catch(error) {
    if (error.statusCode === 404) {
      console.log('not found');
    } else {
      console.log(`other error: ${error.statusCode}: ${error.message}`);
    }
  }
}

mainAsync();

Promise
const consul = require('consul')({ promisify: true });

const mainPromise = () => {
  return consul.kv.keys('test').then(
    (results) => {
      console.log(results);
    },
    (error) => {
      if (error.statusCode === 404) {
        console.log('not found');
      } else {
        console.log(`other error: ${error.statusCode}: ${error.message}`);
      }
    }
  )
}

mainPromise();

Callback
const consul = require('consul')();

const mainCallback = () => {
  consul.kv.keys('test', (error, results) => {
    if (error) {
      if (error.statusCode === 404) {
        console.log('not found');
      } else {
        console.log(`other error: ${error.statusCode}: ${error.message}`);
      }
    } else {
      console.log(results);
    }
  })
}

mainCallback();

I see, thanks. However it would be nice if the documentation was a bit more detailed about the returned type in order to avoid this kind of confusion.


shortcuts

hey, i love your extension. Thanks for the great work. What is the quickest way to implement keyboard shortcut?
I have tried the below to no avail.
document.querySelector(".gmde_microphone")
.dispatchEvent(new MouseEvent("mousedown"));
Thanks,Jonathan

Hey Jonathan, Thanks for the nice words!
Try document.querySelector(".gmde_microphone").click() and let me know if that works.
What are you using to create the keyboard shortcut? Another Chrome extension? Are you extending this extension?
Cheers

It was badly needed really. I can't imagine how i could live without. It works perfect by the way.
Here it is https://chrome.google.com/webstore/detail/shortkeys-custom-keyboard/logpjaacgmcbpdkdchjiaagddngobkck
You can basically run javascript with keyboard shortcuts. It is fairly reliable!
Also, would you know of anyway to extend the speech to text to any text field in chrome? Would it be complicated to do?
I am looking forward to hear back from you.
Cheers

Thanks for the link to Shortkeys!
It would probably be better to create another, more generic, extension that would allow you to dictate into any field (not just Gmail). It's a great idea though -- I'll keep it in mind!

cool! Let me know. iwill also look into it


Max Likelihood Amplitude Estimator applies post processing twice to the confidence interval

Information

Qiskit Terra version: 0.17.1
Python version: 3.8.3
Operating system: macOS 11.2.3

What is the current behavior?
The confidence_interval of the Max Likelihood Amplitude Estimator is already rescaled. The confidence_interval_processed is rescaled twice. This does not happen for example with the Iterative Amplitude Estimator
Steps to reproduce the problem
Run a Max Likelihood Amplitude Estimator with a post processing function
What is the expected behavior?
Have the confidence_interval not rescaled, and the confidence_interval_processed only rescaled once
Suggested solutions
I haven't seen where the bug is

The same problem happens with AmplitudeEstimation too

Transfered to new repo: https://github.com/qiskit-community/qiskit-algorithms/issues/49


Find a solution for ./genproto.sh

As of now, if someone executes the command ./genproto.sh, the person will see the following error:
protoc-gen-go: unable to determine Go import path for "demo.proto"

Please specify either:
	• a "go_package" option in the .proto source file, or
	• a "M" argument on the command line.

See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.

--go_out: protoc-gen-go: Plugin failed with status code 1.

The first solution proposed(a "go_package" option) does not work anymore as of proto3(see this) thus another solution should be found in order to generate the file

SOLVED


python.pkgs.scipy: inherit the correct version

Motivation for this change
Because of the missing rec the inherited version was actually the
nixpkgs version. AS a result, the output name depended on how nixpkgs
was fetched, introducing impurity.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build pythonPackages.scipy

The issue was introduced in https://github.com/NixOS/nixpkgs/commit/28554b17a93db76db7b303a7808e57a3f0c6babb (as found by @cleverca22)

Good catch. I think we should actually get rid of this top-level version
attribute asap because it has caused this kind of trouble more often.
On Fri, Jul 12, 2019, 22:31 Timo Kaufmann<EMAIL_ADDRESS>wrote:

Merged #64678 https://github.com/NixOS/nixpkgs/pull/64678 into master.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/64678?email_source=notifications&email_token=AAQHZ36R4EPBBJC6IZQM4ILP7DS2RA5CNFSM4ICQM73KYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOSPJ22OI#event-2480123193,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAQHZ34BKAWFKLSPFT3SPZ3P7DS2RANCNFSM4ICQM73A
.

Followup in https://github.com/NixOS/nixpkgs/pull/64680 because I forgot to also update the fixed output hash. I wonder how this ever worked. Somehow a scipy version must have been in the nix cache under that hash.

I think we should actually get rid of this top-level version attribute

Agreed, not sure why we would want that in lib anyway.