aboutsummaryrefslogtreecommitdiffstats
path: root/backend/webapi/youtube.py
diff options
context:
space:
mode:
Diffstat (limited to 'backend/webapi/youtube.py')
-rw-r--r--backend/webapi/youtube.py61
1 files changed, 0 insertions, 61 deletions
diff --git a/backend/webapi/youtube.py b/backend/webapi/youtube.py
deleted file mode 100644
index a25f5ba..0000000
--- a/backend/webapi/youtube.py
+++ /dev/null
@@ -1,61 +0,0 @@
-from webapi.web_api import WebAPI
-
-
-class YouTubeAPI(WebAPI):
- """
- Class for interacting with the YouTube API
- """
-
- def __init__(self, api_key: str = None):
- self.api_key = api_key
- self.base_url = "https://www.googleapis.com/youtube/v3/"
-
- def _search_matching_id(self, id: str, data: list) -> dict:
- """
- Searches for a info matching a given ID
- param:
- id: str - the ID to search for
- """
- for entry in data:
- if entry['id'] == id:
- return entry
- return None
-
- def get_data_all_channels(self, channel_tuples: list) -> list:
- data = []
- members = len(channel_tuples)
- request_chunks = [channel_tuples[i:i + 50] for i in range(0, members, 50)]
- for chunk in request_chunks:
- channel_ids = [x[0] for x in chunk]
- channel_names = [x[1] for x in chunk]
- request_string = ",".join(channel_ids)
- stats = self._download_url(
- f"channels?part=statistics&id={request_string}&key={self.api_key}")
- snippet = self._download_url(
- f"channels?part=snippet&id={request_string}&key={self.api_key}")
- stats_list = stats['items']
- snippet_list = snippet['items']
- for i in range(len(stats_list)):
- try:
- # group/sub_org is used to further divide channels into subsets (sorta like teams)
- # can't think of a better match via YouTube API rn other than customUrl
- data_entry = {'english_name': channel_names[i], 'id': channel_ids[i],
- 'subscriber_count':
- self._search_matching_id(channel_ids[i], stats_list)['statistics']['subscriberCount'],
- 'view_count':
- self._search_matching_id(channel_ids[i], stats_list)['statistics']['viewCount'],
- 'photo':
- self._search_matching_id(channel_ids[i], snippet_list)['snippet']['thumbnails']['default']['url'],
- 'description':
- self._search_matching_id(channel_ids[i], snippet_list)['snippet']['description'],
- 'group':
- self._search_matching_id(channel_ids[i], snippet_list)['snippet']['customUrl'],
- 'video_count':
- self._search_matching_id(channel_ids[i], stats_list)['statistics']['videoCount']
- }
- data.append(data_entry)
- except TypeError:
- print("Error NoneType: " + str(channel_ids[i]))
- except KeyError:
- print("Error KeyError: " + str(channel_ids[i]))
- return data
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage