cmenon12 / birdbox-livestream

Collection of Python scripts designed for livestreaming a birdbox from a Raspberry Pi to YouTube!
https://www.youtube.com/channel/UCikUXkTwFvyrHlajBRQwvuw/
GNU General Public License v3.0
2 stars 0 forks source link

Catch additional errors during HTTP requests #97

Closed cmenon12 closed 7 months ago

cmenon12 commented 7 months ago

See birdbox-livestream-yt-livestream-2024-02-05 10.24.27.txt in emails.

Traceback (most recent call last):
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 699, in urlopen
httplib_response = self._make_request(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 445, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 440, in _make_request
httplib_response = conn.getresponse()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/http/client.py", line 1348, in getresponse
response.begin()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/http/client.py", line 316, in begin
version, status, reason = self._read_status()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/http/client.py", line 285, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 755, in urlopen
retries = retries.increment(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/util/retry.py", line 532, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/packages/six.py", line 769, in reraise
raise value.with_traceback(tb)
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 699, in urlopen
httplib_response = self._make_request(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 445, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 440, in _make_request
httplib_response = conn.getresponse()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/http/client.py", line 1348, in getresponse
response.begin()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/http/client.py", line 316, in begin
version, status, reason = self._read_status()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/http/client.py", line 285, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/auth/transport/requests.py", line 186, in __call__
response = self.session.request(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/requests/adapters.py", line 498, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/pi/Documents/birdbox-livestream/yt_livestream.py", line 771, in main
process_broadcasts(now, yt)
File "/home/pi/Documents/birdbox-livestream/yt_livestream.py", line 722, in process_broadcasts
status = yt.get_broadcast_status(scheduled[start_time]["id"])["lifeCycleStatus"]
File "/home/pi/Documents/birdbox-livestream/yt_livestream.py", line 626, in get_broadcast_status
broadcasts = self.list_all_broadcasts(part="status", broadcast_id=[video_id])
File "/home/pi/Documents/birdbox-livestream/yt_livestream.py", line 397, in list_all_broadcasts
self.get_service().liveBroadcasts().list(
File "/home/pi/Documents/birdbox-livestream/google_services.py", line 124, in get_service
credentials.refresh(Request())
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/oauth2/credentials.py", line 430, in refresh
) = reauth.refresh_grant(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/oauth2/reauth.py", line 332, in refresh_grant
response_status_ok, response_data, retryable_error = _client._token_endpoint_request_no_throw(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/oauth2/_client.py", line 215, in _token_endpoint_request_no_throw
request_succeeded, response_data, retryable_error = _perform_request()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/oauth2/_client.py", line 191, in _perform_request
response = request(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/auth/transport/requests.py", line 192, in __call__
raise new_exc from caught_exc
google.auth.exceptions.TransportError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

See birdbox-livestream-yt-livestream-2024-02-08 09.45.33.txt

Traceback (most recent call last):
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 445, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 440, in _make_request
httplib_response = conn.getresponse()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/http/client.py", line 1348, in getresponse
response.begin()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/http/client.py", line 316, in begin
version, status, reason = self._read_status()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/http/client.py", line 277, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/ssl.py", line 1241, in recv_into
return self.read(nbytes, buffer)
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/ssl.py", line 1099, in read
return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 755, in urlopen
retries = retries.increment(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/util/retry.py", line 532, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/packages/six.py", line 770, in reraise
raise value
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 699, in urlopen
httplib_response = self._make_request(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 447, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/urllib3/connectionpool.py", line 336, in _raise_timeout
raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Read timed out. (read timeout=120)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/auth/transport/requests.py", line 186, in __call__
response = self.session.request(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/requests/adapters.py", line 529, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Read timed out. (read timeout=120)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/pi/Documents/birdbox-livestream/yt_livestream.py", line 771, in main
process_broadcasts(now, yt)
File "/home/pi/Documents/birdbox-livestream/yt_livestream.py", line 722, in process_broadcasts
status = yt.get_broadcast_status(scheduled[start_time]["id"])["lifeCycleStatus"]
File "/home/pi/Documents/birdbox-livestream/yt_livestream.py", line 626, in get_broadcast_status
broadcasts = self.list_all_broadcasts(part="status", broadcast_id=[video_id])
File "/home/pi/Documents/birdbox-livestream/yt_livestream.py", line 397, in list_all_broadcasts
self.get_service().liveBroadcasts().list(
File "/home/pi/Documents/birdbox-livestream/google_services.py", line 124, in get_service
credentials.refresh(Request())
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/oauth2/credentials.py", line 430, in refresh
) = reauth.refresh_grant(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/oauth2/reauth.py", line 332, in refresh_grant
response_status_ok, response_data, retryable_error = _client._token_endpoint_request_no_throw(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/oauth2/_client.py", line 215, in _token_endpoint_request_no_throw
request_succeeded, response_data, retryable_error = _perform_request()
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/oauth2/_client.py", line 191, in _perform_request
response = request(
File "/home/pi/.pyenv/versions/3.8.12/lib/python3.8/site-packages/google/auth/transport/requests.py", line 192, in __call__
raise new_exc from caught_exc
google.auth.exceptions.TransportError: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Read timed out. (read timeout=120)