bbb-render
bbb-render copied to clipboard
Changed the way the items are downloaded
This other methods is safer, the code will not break if a component is missing and can't be downloaded. As you can see below the code fails at line 73, where the seflf_get() method is called on the missing deskshare.webm. Nesting all the components in a try by using a for loop, seems to be the safest way to do this.
$ python download.py https://**redacted**/playback/presentation/2.3/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384 outu
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/metadata.xml...
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/shapes.svg...
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/presentation/44bd52a9a4d77104fbb1b7eca7475a453ce1c95c-1644220733306/slide-1.png...
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/panzooms.xml...
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/cursor.xml...
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/deskshare.xml...
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/presentation_text.json...
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/captions.json...
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/slides_new.xml...
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/video/webcams.webm...
Downloading https://**redacted**/presentation/b4fbf357166b916dd0460ce69e2c7c09fcd8b55f-1644219908384/deskshare/deskshare.webm...
Traceback (most recent call last):
File "download.py", line 85, in <module>
sys.exit(main(sys.argv))
File "download.py", line 81, in main
d.download()
File "download.py", line 73, in download
self._get('deskshare/deskshare.webm')
File "download.py", line 38, in _get
resp = urllib.request.urlopen(req)
File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.8/urllib/request.py", line 531, in open
response = meth(req, response)
File "/usr/lib/python3.8/urllib/request.py", line 640, in http_response
response = self.parent.error(
File "/usr/lib/python3.8/urllib/request.py", line 569, in error
return self._call_chain(*args)
File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib/python3.8/urllib/request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
I'm not the maintainer but this seems good to me. Thanks.
In the future it would be nice to distinguish temporary errors (like HTTP status 5** or timeouts etc.) but this is already an improvement to avoid being stuck by a specific missing file.
I think this pull request will fix this specific bug: #24
I think this pull request also fixes this bug: #2
Can I help in merging this change that fixes two bugs?
Thank you @plugorgau for your opinion
Hi @valerio-bozzolan, sorry for the late reply. You're free to helpwith the merge. I had a few more changes stashed that apparently solve some other issues but I will open different pull requests for those.
Premising that I've done some code review, and I'm merging what I like in this fork:
https://github.com/valerio-bozzolan/bbb-render
Hoping to be useful, this pull request was merged in that fork, at this point:
https://github.com/valerio-bozzolan/bbb-render/commit/4bb83a5253c89c1a9e47eb74a1d328e915d3eeff