sfc-gh-ccuarez / pycollab Goto Github PK
View Code? Open in Web Editor NEWPython Collab
License: MIT License
Python Collab
License: MIT License
Hi,
I've found other error, this seems to be related to when the Learn REST API application has reached its maximum requests quota:
[auth:setToken()] ERROR: <Response [400]>
[auth:setToken()] ERROR: <Response [400]>
Traceback (most recent call last):
File "/usr/local/opt/PyCollab/controladores/AuthControlador.py", line 57, in getToken
token = self.cache['token']
TypeError: 'NoneType' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "Collab.py", line 16, in <module>
course_uuids.append(webService.getUUID(curso))
File "/usr/local/opt/PyCollab/webService.py", line 58, in getUUID
credencial = {'Authorization' : 'Bearer ' + self.getToken()}
File "/usr/local/opt/PyCollab/webService.py", line 35, in getToken
return(self.sesion.getToken())
File "/usr/local/opt/PyCollab/controladores/AuthControlador.py", line 67, in getToken
return self.cache['token']
TypeError: 'NoneType' object is not subscriptable
Guessing it would be helpful to handle this error with a friendly message to help the person executing the script to request an increase in their quota.
Thanks!
Hi there !!
I'm getting the following error in some video downloads with PyCollab.
The download starts, but it fails in some point.
I don't know if it is a problem with PyCollab or some lib you are using.
Traceback (most recent call last):
File "D:\Repositorio_externos\PyCollab\CollabRecordingsDownload.py", line 35, in
ut.downloadRecordingsUUID(recording_lista)
File "D:\Repositorio_externos\PyCollab\Utilidades.py", line 299, in downloadRecordingsUUID
print(fullpath + filename)
File "C:\Python38\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u0327' in position 93: character maps to
Hi!
Thanks for the script, I'm receiving this error when trying to execute a medium set of courses (>500) with 1 (one) week of recordings parameter:
Traceback (most recent call last):
File "Collab.py", line 26, in <module>
grabaciones = ut.listaGrabaciones(grabacionesJson)
File "/usr/local/opt/PyCollab/Utilidades.py", line 18, in listaGrabaciones
recordinglist.append({"recording_id" : recordings['results'][x]['id'], "recording_name" : recordings['results'][x]['name'], "duration":recordings['results'][x]['duration'], "storageSize":recordings['results'][x]['storageSize'],"created": recordings['results'][x]['created']})
KeyError: 'storageSize'
Thanks for any assistance =D
This looks really great! Has anyone translated it to english? What folder do the videos and data download to? Can you run the script on PC and specify a destination folder on the local area network? I don't see anything on python web searching about PEP 157 package instalation. But I see something on PEP 517. Is that a typo?
Hi,
I am getting 403 errors unless I flip the Access on the recording to Public. The default currently for Collab Ultra is to only have course members have access to recordings.
Is there a work around for this?
Thanks
Hello Carlos,
We need to add a couple of things on the read.me:
First, we need to make sure that our clients understand the following:
In order to get the Learn credentials, they do not to open a case on behind the blackboard nor email [email protected].
They need to go to developer.blackboard.com and register from there to grab the Learn credentials for their application, it is also imperative to remind them that they are creating an application based on your code, so they need to register as a developer.
Now, for Collaborate production they CAN and MUST create a ticket on behind the blackboard requesting their credentials.
So, can you please add this in:
Appreciate your time and help!
El código del proyecto PyCollab es muy útil, pero en el caso de nuestra universidad tenemos open LMS con plugin para collaborate ultra no LTI, la búsqueda por nombre de la sesión nos arroja varias grabaciones debido que no se maneja un nombre único de la sesión, nuestros usuarios suelen usar nombres genéricos somo por ejemplo: "Sesión 1".
python CollabMoodle.py -s moodle_plugin_sessions.txt -w 100
Hi,
I have already downloaded the recordings through the scheduler using the scheduler report. Now I want to delete the recordings.
What is the RecordingID in the report?
SessionIdentifier
SessionInstanceIdentifier
ExternalContextID
RecordingLink
Thanks
Hi guys! I'm trying download video course uuid, however, when the download is finished, the name uuid its the same to all videos download. What's can is happening ?
Please add a support title on READ.me letting users know that this is NOT supported on behind the blackboard.
Some information from the APIS that I can use or what other data I can obtain from the session to be able to identify which course ID the recording belongs to, because the downloads are made by the session name and in all the courses of our LMS it has the Collaborate class names with similar name so cannot be differentiated.
If you can support with some information. Thanks.
When grabbing a recording using the course name, it is able to grab the UUID and than grab the recordings...
But when using the same UUID and same weeks, using the UUID file the recordings are not found.
Buen día
Al intentar descargar las grabaciones de Collaborate con ayuda del reporte de grabaciones me arroja el siguiente error.
PS D:\PyCollab> python CollabRecordingsDownload.py -f RecordingReport.csv
Traceback (most recent call last):
File "CollabRecordingsDownload.py", line 15, in
recordings_ids = ut.readCollabReport(param[0])
File "D:\PyCollab\Utilidades.py", line 97, in readCollabReport
recording = recording_id(register['RecordingLink'])
KeyError: 'RecordingLink'
Me pueden ayudar por favor
Gracias
Python version testing: 3.9
Python version testing: 3.8
Python version testing: 3.7
Course Recordings from 2020-09-22T02:30:42Z
[auth:setToken()] ERROR: <Response [400]>
[auth:setToken()] ERROR: <Response [400]>
Traceback (most recent call last):
File "/usr/src/app/controladores/AuthControlador.py", line 59, in getToken
token = self.cache['token']
TypeError: 'NoneType' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "Collab.py", line 21, in <module>
course_uuids.append(webService.getUUID(curso))
File "/usr/src/app/webService.py", line 77, in getUUID
token = self.getToken()
File "/usr/src/app/webService.py", line 36, in getToken
return(self.sesion.getToken())
File "/usr/src/app/controladores/AuthControlador.py", line 69, in getToken
return self.cache['token']
TypeError: 'NoneType' object is not subscriptable
In scenario 3, after downloading and renaming the Collaborate recordings list, we execute the instruction:
python CollabRecordings.py -f RecordingsReport.csv
But the following message is displayed
What could be happening?
The computer is a Windows 10 X86 and the python version is Python 3.8.6 - Sept 24 2020
I appreciate your comments in advance.
If there any recordings with the same name, it doesn't download.
A really nice feature would be the ability to pull recordings based on their Recording ID and not just the UUID that is associated to a course. Some recordings are not in a course and the only way to get that is through the recording report that has to be manually created... But if this can be modified to pull recording ID, all recordings can be downloaded with their ID's only and no report or course names are needed.
Hi there,
I´m trying to download the recordings, but I was experiencing a lot of connection issues with us.bbcollab.com. I already tried to download from two diferente networks, but the issue persists. Could someone give me a good insight to try to resolve this issue?
The script downloads one or two recordings and then the connection error happen.
The error:
Traceback (most recent call last):
File "C:\Python37\lib\site-packages\urllib3\connection.py", line 160, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw
File "C:\Python37\lib\site-packages\urllib3\util\connection.py", line 61, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "C:\Python37\lib\socket.py", line 752, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Python37\lib\site-packages\urllib3\connectionpool.py", line 677, in urlopen
chunked=chunked,
File "C:\Python37\lib\site-packages\urllib3\connectionpool.py", line 381, in _make_request
self._validate_conn(conn)
File "C:\Python37\lib\site-packages\urllib3\connectionpool.py", line 976, in _validate_conn
conn.connect()
File "C:\Python37\lib\site-packages\urllib3\connection.py", line 308, in connect
conn = self._new_conn()
File "C:\Python37\lib\site-packages\urllib3\connection.py", line 172, in _new_conn
self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x000002CA0ED07A08>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Python37\lib\site-packages\requests\adapters.py", line 449, in send
timeout=timeout
File "C:\Python37\lib\site-packages\urllib3\connectionpool.py", line 725, in urlopen
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
File "C:\Python37\lib\site-packages\urllib3\util\retry.py", line 439, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='us.bbcollab.com', port=443): Max retries exceeded with url: /collab/api/csa/token (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002CA0ED07A08>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "Collab3.py", line 49, in
ut.downloadOneRecordingPUCPR(recording_id,cursoid,linha)
File "C:\PyCollab2\Utilidades.py", line 215, in downloadOneRecordingPUCPR
recording_data = webService.get_recording_data(recording_id)
File "C:\PyCollab2\webService.py", line 95, in get_recording_data
sessions = SesionControlador.SesionControlador(self.DOMAIN_C,self.getJot(),self.CERT)
File "C:\PyCollab2\webService.py", line 40, in getJot
self.jsesion.setJot()
File "C:\PyCollab2\controladores\JotControlador.py", line 64, in setJot
r = requests.post(endpoint, data=self.payload, auth=(self.key, self.secret), verify=self.cert)
File "C:\Python37\lib\site-packages\requests\api.py", line 119, in post
return request('post', url, data=data, json=json, **kwargs)
File "C:\Python37\lib\site-packages\requests\api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Python37\lib\site-packages\requests\sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python37\lib\site-packages\requests\sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "C:\Python37\lib\site-packages\requests\adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='us.bbcollab.com', port=443): Max retries exceeded with url: /collab/api/csa/token (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002CA0ED07A08>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
Cesar Ferenc
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.