Closed amkorousagi closed 4 years ago
first, search by category.
GET https://www.googleapis.com/youtube/v3/search parameters are type=video, videocategoryid=?
for knowing videocategoryid,
will return all categories, along with their ids, for a given region.
so find proper categoryid, do REST api on python
Refer: https://developers.google.com/youtube/v3/docs/search/list?hl=ko https://stackoverflow.com/questions/17698040/youtube-api-v3-where-can-i-find-a-list-of-each-videocategoryid
second, get text from video, by titile and thumnale(computervision), and get keyword from the text by natural language. this is very similar my other project ; https://github.com/amkorousagi/Meali2
so i want for jyt to do this... Plz :)
For iterator statement
response for search by category
{ "kind": "youtube#searchListResponse", "etag": etag, "nextPageToken": string, "prevPageToken": string, "pageInfo": { "totalResults": integer, "resultsPerPage": integer }, "items": [ search Resource ] }
view all items, Keep going while next page token exist .
Plz convert above sudo code to python code
Like as above, respense list category id { "kind": "youtube#videoCategoryListResponse", "etag": etag, "nextPageToken": string, "prevPageToken": string, "pageInfo": { "totalResults": integer, "resultsPerPage": integer }, "items": [ videoCategories resource ] }
view items keep going while next page token exist
2020/08/02, start to implement.
The step ..
https://www.googleapis.com/youtube/v3/search?q=<검색어>&key=<자신의 API키> 로 확인해본 결과 rest api 이상없이 작동함을 확인함.
https://developers.google.com/youtube/v3/docs/guideCategories/list
getCategoryId 를 위해 이 페이지를 참고함
import json import requests
URL_SEARCH = "https://www.googleapis.com/youtube/v3/search" API_KEY = "AIzaSyABYt3bjXmFzFyzZxJJut7J93Bv_3BkhUE"
def getList(categoryId): response = requests.get(URL_SEARCH + "?videoCategoryId=" + categoryId + "&part=snippet" + "&key=" + API_KEY + "&type=video") print(response.json())
def print_hi(name):
print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint.
if name == 'main': print_hi('PyCharm') getList("1")
{'kind': 'youtube#searchListResponse', 'etag': 'FXYr72KXx5KdlU8-yTiuPJlGgtU', 'nextPageToken': 'CAUQAA', 'regionCode': 'KR', 'pageInfo': {'totalResults': 1000000, 'resultsPerPage': 5}, 'items': [{'kind': 'youtube#searchResult', 'etag': 'AH4_B7T5tA3Du-VJj_rfy9QzCOY', 'id': {'kind': 'youtube#video', 'videoId': 'i6sRBs9EIf4'}, 'snippet': {'publishedAt': '2020-07-24T16:00:10Z', 'channelId': 'UCV6g95OBbVtFmN9uiJzkFqQ', 'title': 'When You Only Level Up One Party Member', 'description': 'Evenly distributing upgrades and XP? Never heard of the guy! Subscribble for more viddles ▻ https://www.youtube.com/circletoonshd Merch!', 'thumbnails': {'default': {'url': 'https://i.ytimg.com/vi/i6sRBs9EIf4/default.jpg', 'width': 120, 'height': 90}, 'medium': {'url': 'https://i.ytimg.com/vi/i6sRBs9EIf4/mqdefault.jpg', 'width': 320, 'height': 180}, 'high': {'url': 'https://i.ytimg.com/vi/i6sRBs9EIf4/hqdefault.jpg', 'width': 480, 'height': 360}}, 'channelTitle': 'CircleToonsHD', 'liveBroadcastContent': 'none', 'publishTime': '2020-07-24T16:00:10Z'}}, {'kind': 'youtube#searchResult', 'etag': 'UbN68WxspuHElVDMdvqX--r_n0E', 'id': {'kind': 'youtube#video', 'videoId': 'MzP9QOUdpQ4'}, 'snippet': {'publishedAt': '2020-07-30T20:05:05Z', 'channelId': 'UC3sznuotAs2ohg_UJzj_Q', 'title': 'Film Theory:\xa0Willy Wonka RIGGED the Golden Tickets!', 'description': 'Check out Food Theory! ▻ https://bit.ly/3eSc5l6 Pizza is a SANDWICH?! ▻ https://youtu.be/TxhrZBO4jY0 Willy Wonka and the Chocolate Factory is a gem in the ...', 'thumbnails': {'default': {'url': 'https://i.ytimg.com/vi/MzP9QOUdpQ4/default.jpg', 'width': 120, 'height': 90}, 'medium': {'url': 'https://i.ytimg.com/vi/MzP9QOUdpQ4/mqdefault.jpg', 'width': 320, 'height': 180}, 'high': {'url': 'https://i.ytimg.com/vi/MzP9QOUdpQ4/hqdefault.jpg', 'width': 480, 'height': 360}}, 'channelTitle': 'The Film Theorists', 'liveBroadcastContent': 'none', 'publishTime': '2020-07-30T20:05:05Z'}}, {'kind': 'youtube#searchResult', 'etag': 's66l7tM8CYSOTF0lbNODR2brSo4', 'id': {'kind': 'youtube#video', 'videoId': '1gPGeAYo3yU'}, 'snippet': {'publishedAt': '2020-07-23T13:00:09Z', 'channelId': 'UCt4Xdx38tkV5_3IkOJAFw-Q', 'title': 'BILL & TED FACE THE MUSIC Official Trailer #2 (2020)', 'description': "It's time to save the world, dudes! Keanu Reeves and Alex Winter return in the all-new trailer for Bill & Ted Face the Music, available On Demand and in theaters ...", 'thumbnails': {'default': {'url': 'https://i.ytimg.com/vi/1gPGeAYo3yU/default.jpg', 'width': 120, 'height': 90}, 'medium': {'url': 'https://i.ytimg.com/vi/1gPGeAYo3yU/mqdefault.jpg', 'width': 320, 'height': 180}, 'high': {'url': 'https://i.ytimg.com/vi/1gPGeAYo3yU/hqdefault.jpg', 'width': 480, 'height': 360}}, 'channelTitle': 'Orion Pictures', 'liveBroadcastContent': 'none', 'publishTime': '2020-07-23T13:00:09Z'}}, {'kind': 'youtube#searchResult', 'etag': 'F4leiX3Xkl1Yy9qc54rmJQkpJEw', 'id': {'kind': 'youtube#video', 'videoId': 'ikICXBzenvo'}, 'snippet': {'publishedAt': '2020-07-31T16:00:59Z', 'channelId': 'UCV6g95OBbVtFmN9uiJzkFqQ', 'title': 'If The Internet Was an Anime', 'description': "Even if you were to defeat this guy, he'd only get replaced with someone slightly stronger next season.... Subscribble for more viddles ...", 'thumbnails': {'default': {'url': 'https://i.ytimg.com/vi/ikICXBzenvo/default.jpg', 'width': 120, 'height': 90}, 'medium': {'url': 'https://i.ytimg.com/vi/ikICXBzenvo/mqdefault.jpg', 'width': 320, 'height': 180}, 'high': {'url': 'https://i.ytimg.com/vi/ikICXBzenvo/hqdefault.jpg', 'width': 480, 'height': 360}}, 'channelTitle': 'CircleToonsHD', 'liveBroadcastContent': 'none', 'publishTime': '2020-07-31T16:00:59Z'}}, {'kind': 'youtube#searchResult', 'etag': '9xlEy4yjj9j-wh6-U3htdns4ZU', 'id': {'kind': 'youtube#video', 'videoId': 'RG1iYRQtjKI'}, 'snippet': {'publishedAt': '2020-07-23T12:02:10Z', 'channelId': 'UCH6vXjt-BA7QHl0KnfL-7RQ', 'title': 'SOS (Simon's Cat Origins Story: Part 3)', 'description': "Baby Simon's Cat is here to stay!!! Watch 'SOS', the final film from our origins series right meow and share your cat's most memorable messes below. Credits ...", 'thumbnails': {'default': {'url': 'https://i.ytimg.com/vi/RG1iYRQtjKI/default.jpg', 'width': 120, 'height': 90}, 'medium': {'url': 'https://i.ytimg.com/vi/RG1iYRQtjKI/mqdefault.jpg', 'width': 320, 'height': 180}, 'high': {'url': 'https://i.ytimg.com/vi/RG1iYRQtjKI/hqdefault.jpg', 'width': 480, 'height': 360}}, 'channelTitle': "Simon's Cat", 'liveBroadcastContent': 'none', 'publishTime': '2020-07-23T12:02:10Z'}}]}
regionCode 라는 파라미터가, 업로더가 한국인인 비디오를 보여주는 것이 아니라, 그저 한국에서 제한되지 않은 비디오를 보여주는 것임을 깨달음.
이후 relevanceLanguage 라는 파라미터로 한국과 관련된 정보만 보려고 했지만, 실패함
어쩌면 q 라는 파라미터로만 국가에대한 관련성을 조정할 수 있는 것 일지도...
계속 찾아보겠음
https://advertools.readthedocs.io/en/master/advertools.youtube.html 에서 다 뒤져 봤지만 region 이나 language를 제한하는 모든 파라미터는 의미없었음. 한국이 아니라 전세계를 대상으로 데이터 수집하는 수 밖에 없는 듯... 아니면 q 파라미터로 불완전하게 localizing을 구현하던가..
q 파라미터로 "자동차"를 넣은 결과
/home/psc/PycharmProjects/trendUp/venv/bin/python /home/psc/PycharmProjects/trendUp/main.py { "kind": "youtube#searchListResponse", "etag": "qwBh27L7mODvgRlpvHMWmF0vGno", "nextPageToken": "CAUQAA", "regionCode": "KR", "pageInfo": { "totalResults": 1000000, "resultsPerPage": 5 }, "items": [ { "kind": "youtube#searchResult", "etag": "ng3DgtiLPBefnJdB3pXw4l8jN9c", "id": { "kind": "youtube#video", "videoId": "usXEfQh7tV4" }, "snippet": { "publishedAt": "2020-07-25T23:00:09Z", "channelId": "UCURffR0e_FPKnDuzQ0XyWhw", "title": "자동차 장난감 구출놀이 포크레인 트럭놀이 Car Toy Stuck Mud Rescue Excavator", "description": "[With Kids Toys]위드키즈 토이즈 Funny Toys for Kids Car Toy Stuck in Mud Rescue Helps Excavator Truck Toys Activity 자동차 장난감 구출놀이 포크레인 트럭 ...", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/usXEfQh7tV4/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/usXEfQh7tV4/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/usXEfQh7tV4/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "위드키즈 토이즈 [With Kids Toys]", "liveBroadcastContent": "none", "publishTime": "2020-07-25T23:00:09Z" } }, { "kind": "youtube#searchResult", "etag": "ZiRQ4GeYM3Rw52e-PcATK99qIrc", "id": { "kind": "youtube#video", "videoId": "ydE1_OR08XI" }, "snippet": { "publishedAt": "2020-06-23T23:00:20Z", "channelId": "UCURffR0e_FPKnDuzQ0XyWhw", "title": "덤프트럭 포크레인 중장비 자동차 장난감 놀이 Dump Truck with Excavator Car Toy Play", "description": "[With Kids Toys]위드키즈 토이즈 Funny Toys for Kids Dump Truck with Excavator Car Toy Activity Video for Kids 덤프트럭 포크레인 중장비 자동차 장난감 놀이 ...", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/ydE1_OR08XI/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/ydE1_OR08XI/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/ydE1_OR08XI/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "위드키즈 토이즈 [With Kids Toys]", "liveBroadcastContent": "none", "publishTime": "2020-06-23T23:00:20Z" } }, { "kind": "youtube#searchResult", "etag": "ZDaMNHQ6AN0xMTuQYIiTpdElEEA", "id": { "kind": "youtube#video", "videoId": "w7Qf5S_SXcE" }, "snippet": { "publishedAt": "2019-12-08T03:29:47Z", "channelId": "UCtzr07Iifce7-48Kw1phdzg", "title": "시쿠 자동차 정비세트 도로놀이 세트 2가지를 동시에 가지고 놀아보아요", "description": "시쿠 자동차 정비세트 도로놀이 세트 2가지를 동시에 가지고 놀아보아요 Play with Siku Car Maintenance Set Road Play Set at the same time #장난감티비 #siku ...", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/w7Qf5S_SXcE/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/w7Qf5S_SXcE/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/w7Qf5S_SXcE/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "[장난감티비]TOYTV", "liveBroadcastContent": "none", "publishTime": "2019-12-08T03:29:47Z" } }, { "kind": "youtube#searchResult", "etag": "5ospnJ1QemPggtBROoJ1UhK2Xv4", "id": { "kind": "youtube#video", "videoId": "qIsGzQ0m2iE" }, "snippet": { "publishedAt": "2019-10-27T07:38:19Z", "channelId": "UCtzr07Iifce7-48Kw1phdzg", "title": "빅 캐리어가 나타났다 어떤 자동차가 들어있을까 색깔과 종류를 알아보아요! #장난감티비 동영상", "description": "빅 캐리어가 나타났다. 어떤 자동차가 들어있을까? 색깔과 종류를 알아보아요! #장난감티비 동영상 Big carrier appeared What kind of car is there? Learn the colors ...", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/qIsGzQ0m2iE/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/qIsGzQ0m2iE/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/qIsGzQ0m2iE/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "[장난감티비]TOYTV", "liveBroadcastContent": "none", "publishTime": "2019-10-27T07:38:19Z" } }, { "kind": "youtube#searchResult", "etag": "zh8CjHw6LTFX0gkdr7VkN1w2FwM", "id": { "kind": "youtube#video", "videoId": "JWDgVHCH5zc" }, "snippet": { "publishedAt": "2020-07-22T07:00:06Z", "channelId": "UCURffR0e_FPKnDuzQ0XyWhw", "title": "포크레인 중장비 자동차 장난감 구출놀이 Excavator Helps Car Toy Rescue", "description": "[With Kids Toys]위드키즈 토이즈 Funny Toys for Kids 3 Excavator Helps Car Toys Rescue Vehicles Toy Activity 포크레인 중장비 자동차 장난감 구출놀이 ...", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/JWDgVHCH5zc/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/JWDgVHCH5zc/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/JWDgVHCH5zc/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "위드키즈 토이즈 [With Kids Toys]", "liveBroadcastContent": "none", "publishTime": "2020-07-22T07:00:06Z" } } ] }
Process finished with exit code 0
여러 다른 키워드로도 해보고, order 파라미터를 바꾸어도 봣지만, title에 해당 검색어가 반드시 포함되어야만 나오는 듯하다. 당초에 계획했던 카테고리별로 국내의 자료를 수집하는 것은 어렵고, 검색어로 자료를 수집하면 제목에 해당 검색어가 들어가지 않는 다른 비디오들은 검색대상에서 제외된다.
그리고 viewCount 순으로 자료를 찾아보는 것은 좋지 않은 방법 같다. 너무 고정적이다 현재 2년이상된 동영상이 압도적인 조회수로 계속 상위에 랭크되어 현재의 동향을 추출하기에는 부적절한 자료이다.
google에서 자체적으로 점수를 매기는 relevance를 order로 하는 것이 가장 적절해 보인다. 적당한 조회수와 적당히 최신자료를 상위에 랭크시켜 준다.
date – 리소스를 만든 날짜를 기준으로 최근 항목부터 시간 순서대로 리소스를 정렬합니다. rating – 높은 평가부터 낮은 평가순으로 리소스를 정렬합니다. relevance – 검색 쿼리에 대한 관련성을 기준으로 리소스를 정렬합니다. 이 매개변수의 기본값입니다. title – 제목에 따라 문자순으로 리소스를 정렬합니다. videoCount – 업로드한 동영상 수에 따라 채널을 내림차순으로 정렬합니다. viewCount – 리소스를 조회수가 높은 항목부터 정렬합니다.
category와 q를 동시에 써봐도 q만 쓸때와 결과는 같다.
결론적으로, q와 order 파라미터를 활용해서 불완전하게나마 국내의 특정카테고리 최신 자료를 수집할 수 있으므로 category나 regionCode, relevanceLanguage 등의 파라미터는 제외하고 q, order 등의 파라미터를 활용한 유튜브 자료 수집 container를 만들어야겠다.
그러기 위해선 미리 특정 검색어를 정해두고 그 검색어들을 지속적으로 결과를 받아오며 동향을 check 해야한다. 특정 검색어를 정해보자.
특정 검색어를 정할 때, 신중하게 정해야한다. "먹방"의 검색결과와 "음식"의 검색결과는 완전히 다르다. 먹방으로 검색하는 것이 좀더 고객층 수요를 판단하기 더 좋은 듯 하다. 그러므로 "옷" 이아니라 "패션" 같이 좀더 구체적이라고할까 좀더 소비자 지향적인 검색어를 선정해야 할것이다
python list insert db https://pynative.com/python-mysql-insert-data-into-database-table/ python from json to list https://rfriend.tistory.com/474
한 video 에서 tile과 description, view count를 알기 위해 video method를 사용한 결과
{ "kind": "youtube#videoListResponse", "etag": "_K3Nnz2GlF01eUQQ8cCNOzpjFeQ", "items": [ { "kind": "youtube#video", "etag": "BP42Rgp8PXwyeB4T3FAO5IWuRjY", "id": "r51UJMj9M6Y", "snippet": { "publishedAt": "2020-07-10T09:45:03Z", "channelId": "UCW-rU_ZE4dAKDejWdTAKmoA", "title": "저렴이 여름옷 30벌💕 키작녀 이쁜 원피스 한가득! 쇼핑했어요", "description": "#summerlookbook #여름옷하울 #패션\n\n❤ 옷 정보\n\n- 달트 / 하즈닝 플라워 원피스 - navy / 49,000원\n- 머랭 / 복숭아 체크 ops - long / 27,500원\n- 머랭 / 스티치 라인 코튼 버킷 벙거지 - 베이지 / 18,000원\n- 머랭 / 썸머 린넨 주름 버킷햇 벙거지 - 블랙 / 19,000원\n- 머랭 / 메종드 꽃 t - 소라 / 14,900원\n- 머랭 / 비비드 꽃자수 곱창 헤어밴드 / 7,000원\n- 에브리모닝 / 코이 플라워 롱 스커트 - 아이보리 / 24,000원\n- 에브리모닝 / 바이엘 랩 치마바지 - 아이보리 / 24,000원\n- 에브리모닝 / 슈가 슬리브&가디건 세트 - 피치핑크 / 24,000원\n- 파스텔타임 / 에어 퍼프 랩 ops - 인디핑크 / 34,000원\n- 파스텔타임 / 반팔 사브레 ops - 베이지 / 16,500원\n- 프롬데이원 / 로잘리 플라워 셔링 원피스 - 아이보리 / 47,000원\n- 프롬데이원 / 포비 배색 pk 원피스 - 네이비 / 29,500원\n- 퍼빗 / 모넷 플라워 롱 원피스 - 소라 / 47,000원\n- 프롬데이원 / 유닌 곱창 밴드 - 그린&진핑크 / 11,000원\n- 퍼빗 / love shirts & bl - 하늘소라 / 29,000원\n- 퍼빗 / 메모리 라인 스커트 - 소라 / 24,900원\n- 프롬데이원 / 프몬 레이스 나시 - 소라 / 17,500원\n- 프롬데이원 / 얼스 여름 체크 셔츠 - 블루그레이 / 32,000원\n- 블랙업 / JOY CROP SLEEVELESS - WHITE / 23,000원\n- 블랙업 / CLAUDIE COTTON SKIRT - PURPLE / 34,000원\n- 블랙업 / 루셀 하트 크리스탈 벨트 / 16,000원\n- 에이비글 / 코디하기 편한 무지 남방 - 화이트 / 15,500원\n- 빈블 / 레토 플라워 가디건 - 아이보리 / 29,500원\n- 빈블 / 비즈 레이스 플라워 스커트 - 오트밀 / 39,500원\n- 민스샵 / 엄지척 1+1 스트라이프 셔츠 - 소라, 민트 / 14,000원\n- 민스샵 / 디저트 원피스 / 23,000원\n\n\n\n\n—————————————————————————\n해당 컨텐츠의 조회수 광고수익중 매달 500,000원이 Save the Children 에 기부됩니다.\n\n☁️ Contact Mail \ndailyhaneulinfo@gmail.com\n\n☁️ Instagram\nhttps://www.instagram.com/haneulina\n\n☁️ 속옷쇼핑몰 하늘하늘\nhttps://www.hn-hn.co.kr", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/r51UJMj9M6Y/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/r51UJMj9M6Y/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/r51UJMj9M6Y/hqdefault.jpg", "width": 480, "height": 360 }, "standard": { "url": "https://i.ytimg.com/vi/r51UJMj9M6Y/sddefault.jpg", "width": 640, "height": 480 }, "maxres": { "url": "https://i.ytimg.com/vi/r51UJMj9M6Y/maxresdefault.jpg", "width": 1280, "height": 720 } }, "channelTitle": "Ha Neul오늘의 하늘", "tags": [ "여름룩북", "여름옷하울", "여름옷", "지그재그", "브랜디", "여자쇼핑몰", "인터넷쇼핑몰", "여친룩", "여자친구", "개강룩", "바캉스룩", "감성", "하늘", "하늘이", "모델하늘", "하늘하늘", "하늘하늘모델", "오늘의하늘", "다이어트", "하늘모델", "haneul", "haneulina", "haneulhaneul", "속옷하늘", "속옷쇼핑몰", "뷰티", "겟레디윗미", "grwm", "일상", "브이로그", "남자친구", "blog", "kbeauty", "korean", "korean beauty", "vlog", "데일리", "koreanfashion", "fashion", "koreandailylook", "dailylook", "프롬데이원", "퍼빗", "달트", "파스텔타임", "빈블", "블랙업", "에이비글", "민스샵", "머랭", "여자친구룩", "옷하울", "패션", "패션하울" ], "categoryId": "22", "liveBroadcastContent": "none", "defaultLanguage": "ko", "localized": { "title": "저렴이 여름옷 30벌💕 키작녀 이쁜 원피스 한가득! 쇼핑했어요", "description": "#summerlookbook #여름옷하울 #패션\n\n❤ 옷 정보\n\n- 달트 / 하즈닝 플라워 원피스 - navy / 49,000원\n- 머랭 / 복숭아 체크 ops - long / 27,500원\n- 머랭 / 스티치 라인 코튼 버킷 벙거지 - 베이지 / 18,000원\n- 머랭 / 썸머 린넨 주름 버킷햇 벙거지 - 블랙 / 19,000원\n- 머랭 / 메종드 꽃 t - 소라 / 14,900원\n- 머랭 / 비비드 꽃자수 곱창 헤어밴드 / 7,000원\n- 에브리모닝 / 코이 플라워 롱 스커트 - 아이보리 / 24,000원\n- 에브리모닝 / 바이엘 랩 치마바지 - 아이보리 / 24,000원\n- 에브리모닝 / 슈가 슬리브&가디건 세트 - 피치핑크 / 24,000원\n- 파스텔타임 / 에어 퍼프 랩 ops - 인디핑크 / 34,000원\n- 파스텔타임 / 반팔 사브레 ops - 베이지 / 16,500원\n- 프롬데이원 / 로잘리 플라워 셔링 원피스 - 아이보리 / 47,000원\n- 프롬데이원 / 포비 배색 pk 원피스 - 네이비 / 29,500원\n- 퍼빗 / 모넷 플라워 롱 원피스 - 소라 / 47,000원\n- 프롬데이원 / 유닌 곱창 밴드 - 그린&진핑크 / 11,000원\n- 퍼빗 / love shirts & bl - 하늘소라 / 29,000원\n- 퍼빗 / 메모리 라인 스커트 - 소라 / 24,900원\n- 프롬데이원 / 프몬 레이스 나시 - 소라 / 17,500원\n- 프롬데이원 / 얼스 여름 체크 셔츠 - 블루그레이 / 32,000원\n- 블랙업 / JOY CROP SLEEVELESS - WHITE / 23,000원\n- 블랙업 / CLAUDIE COTTON SKIRT - PURPLE / 34,000원\n- 블랙업 / 루셀 하트 크리스탈 벨트 / 16,000원\n- 에이비글 / 코디하기 편한 무지 남방 - 화이트 / 15,500원\n- 빈블 / 레토 플라워 가디건 - 아이보리 / 29,500원\n- 빈블 / 비즈 레이스 플라워 스커트 - 오트밀 / 39,500원\n- 민스샵 / 엄지척 1+1 스트라이프 셔츠 - 소라, 민트 / 14,000원\n- 민스샵 / 디저트 원피스 / 23,000원\n\n\n\n\n—————————————————————————\n해당 컨텐츠의 조회수 광고수익중 매달 500,000원이 Save the Children 에 기부됩니다.\n\n☁️ Contact Mail \ndailyhaneulinfo@gmail.com\n\n☁️ Instagram\nhttps://www.instagram.com/haneulina\n\n☁️ 속옷쇼핑몰 하늘하늘\nhttps://www.hn-hn.co.kr" }, "defaultAudioLanguage": "ko" } } ], "pageInfo": { "totalResults": 1, "resultsPerPage": 1 } } × Drag and Drop The image will be downloaded
description과 title은 part=snippet일 때 나오는데 viewcount는 part=statistic 일때 나온다. 한동영상당 2번씩 요청을 더해야한다. 이건 너무 큰 오버헤드다.
차라리 viewcount 알지말고 description 도 search method에서 앞에 짧게 제공되는 것만 읽고 title과 order가 relevance인 걸 순위로 보고 하자.
video method를 써서 view count와 자세한 description을 알기보다, 그저 relevance로 랭크 되는 것을 순위로 정하고, title과 조금 제공되는 description으로 keyword를 알자, upload time도 search method에 나오니까.
우리는 많은 양의 데이터를 처리해야 되기 때문에 한 동영상당 한번이라도 호출을 덜하는 더 좋을 것이다.
다시생각해보니 view count를 모르면... 의미있는 데이터를 얻을수 없을 것 같다. view count는 필수다. 오버헤드가 발생하더라도 기능에 추가하자
json in memory --> python object --> dictionary나 list 로 활용
import json import requests
URL_SEARCH = "https://www.googleapis.com/youtube/v3/search" URL_VIDEO = "https://www.googleapis.com/youtube/v3/videos" API_KEY = "AIzaSyABYt3bjXmFzFyzZxJJut7J93Bv_3BkhUE" MAX_RESULT = "5" MAX_PAGE = 5
def get_view_count_by_id(videoId): response = requests.get(URL_VIDEO + "?part=statistics" + "&key=" + API_KEY + "&id=" + videoId) pretty_json = json.loads(response.text) print(json.dumps(pretty_json, indent=4, ensure_ascii=False)) return pretty_json["items"][0]["statistics"]["viewCount"]
def get_youtube_data_by_q(q): i = 0 is_next = False while True: i += 1 if is_next: response = requests.get(URL_SEARCH + "?pageToken=" + next + "&part=snippet" + "&key=" + API_KEY + "&maxResults=" + MAX_RESULT + "&type=video®ionCode=KR&relevanceLanguage=ko") else : response = requests.get(URL_SEARCH + "?q=" + q + "&part=snippet" + "&key=" + API_KEY + "&maxResults=" + MAX_RESULT + "&type=video®ionCode=KR&relevanceLanguage=ko")
res = json.loads(response.text)
next = res["nextPageToken"]
for item in res["items"]:
print(q, item["snippet"]["title"], item["snippet"]["description"], get_view_count_by_id(item["id"]["videoId"]), item["snippet"]["publishTime"])
if i < MAX_PAGE :
is_next = True;
continue
break
if name == 'main': get_youtube_data_by_q("여름옷")
여기에서 category는 q, keyword는 title과 description upload Time은 publish Time view Count
등의 형식으로 row를 만들어 출력했다
차후 natural language나 computer vision을 통해 title, description, thumnale에서 의미있는 keyword를 추출할 수 있을 것이다
여름옷$$저렴이 여름옷 30벌💕 키작녀 이쁜 원피스 한가득! 쇼핑했어요$$summerlookbook #여름옷하울 #패션 ❤ 옷 정보 - 달트 / 하즈닝 플라워 원피스 - navy / 49000원 - 머랭 / 복숭아 체크 ops - long / 27500원 - 머랭 / 스티치 라인 코튼 ...$$143815$$2020-07-10T09:45:03Z
여름옷$$우리가 입을 옷이 없는 이유 : 여름편 (여름옷 100벌 돌려입을 기본템 40가지)$$Instagram @aimeoza 안녕하세요 여러부운 오자입니닷 오늘은 드디어!!!!!! 요청 많이 주신 여름기본템 영상을 들고왔어요 지난 기본템 영상 너무 노잼이라 걱정 ...$$179268$$2020-05-15T14:54:38Z
여름옷$$요청이 많았던 여름 옷코디 영상!! [쇼핑몰 '핫핑' 원브랜드 하울!] 0zoo 영주$$안녕 여러분~ 안녕 주주들~ 오늘은 원브랜드 하울 느낌으로 쇼핑몰 '핫핑'에서 구입한 옷들로 옷코디 영상을 찍어봤는데요! 핫핑이라는 쇼핑몰을 처음 들었는데 ...$$67992$$2020-07-25T11:00:17Z
여름옷$$여름코디🌴성공한 100만원어치 여름옷 데일리룩 모음!💚(feat.착한가격은 덤)$$안녕하세요 여러부운! 벌써 세번째 여름옷 하울이네요! 흡 Hoxy 지겨우신건 아니시죠?? 정말 고민많이 해서 조합해본 코디들 이에요! 데일리하게 입기 좋을 옷들로 ...$$13954$$2020-07-24T09:30:02Z
여름옷$$[데일리룩] 여름 옷 잔뜩 20set 👗 기본 린넨티 • 여름원피스 • 데일리백, 샌들까지$$Instagram.eun_dy https://www.instagram.com/eun_dy * E- mail cho44992204@hanmail.net 안녕하세요 여러분 ! 계절 상으로는 겨울까지 만나고 여름으로 왔는데, ...$$118786$$2020-07-16T11:56:57Z
여름옷$$Gran Metalik vs. Lince Dorado vs. Shorty G vs. Gulak – Fatal 4-Way Match: SmackDown, July 24, 2020$$Four SmackDown Superstars battle for a breakthrough Intercontinental Championship opportunity against AJ Styles. Catch WWE action on WWE Network, FOX, ...$$294569$$2020-07-25T02:59:18Z
여름옷$$Top 10 Friday Night SmackDown moments: WWE Top 10, July 24, 2020$$WWE Top 10 takes you back to this week's Friday Night SmackDown to revisit the show's most thrilling, physical and controversial moments, presented by ...$$824853$$2020-07-25T19:58:36Z
여름옷$$nba youngboy - death enclaimed$$YoungBoy Never Broke Again - Still Flexin, Still Steppin OUT NOW! Stream/Download: https://youngboy.lnk.to/StillFlexinStillSteppinID Subscribe for more official ...$$35502252$$2020-06-21T08:55:48Z
여름옷$$BALAN WONDERWORLD - Title Announcement Trailer - Nintendo Switch$$Welcome to BALAN WONDERWORLD: a wondrous show, the likes of which has never been seen before! The curtains have been lifted, unveiling the all-new 3D ...$$462591$$2020-07-24T18:15:18Z
여름옷$$We SAVED A Lost BABY Creeper In Minecraft!$$We found the cutest Baby Creeper, awwww man! ...but he's lost! Become a super awesome YouTube Member! https://www.youtube.com/aphmaugaming/join ...$$1889956$$2020-07-24T19:16:51Z
여름옷$$HYO ‘DESSERT (Feat. Loopy, SOYEON ((G)I-DLE))’ MV$$HYO's new single "DESSERT (Feat. Loopy, SOYEON ((G)I-DLE))" is out! Listen and download on your favorite platform: https://smarturl.it/HYO_DESSERT HYO ...$$8772996$$2020-07-22T11:00:04Z
여름옷$$FIRST LOOK: Rick and Morty Season 5 | adult swim$$Season 5 sneak peek of #rickandmorty at #AdultSwimCon SUBSCRIBE: http://bit.ly/AdultSwimSubscribe About Adult Swim: Get your Adult Swim fix whenever ...$$2231929$$2020-07-25T01:00:06Z
여름옷$$SIBLING PRANK WARS!!$$Things get heated! Thank you guys so much for watching. Make sure to LIKE the video and SUBSCRIBE! @Brent Rivera If you see this comment who had the ...$$2271796$$2020-07-25T19:41:48Z
여름옷$$Marvel & Hulu's Helstrom - Official Trailer | Comic Con 2020$$Marvel's Helstrom is a chilling supernatural thriller inspired by Marvel Comics' Son of Satan and Satana characters, premiering October 16 on Hulu. The new ...$$198789$$2020-07-24T23:00:12Z
여름옷$$Shinsuke Nakamura & Cesaro gloat as new champions: SmackDown, July 24, 2020$$The new SmackDown Tag Team Champions call out the rest of the blue brand tandems and revel in causing Kofi Kingston's injury. Catch WWE action on WWE ...$$157232$$2020-07-25T03:19:38Z
여름옷$$Dev Diaries #2: Nether Sound$$In this edition of Minecraft Dev Diaries we take a closer look, or rather listen, to the sounds of the Nether. Find out how the Nether differs from the naturalistic ...$$618185$$2020-07-24T15:00:05Z
여름옷$$Classic Yone, the Unforgotten - Ability Preview - League of Legends$$Yone, Unforgotten Ability Preview. Purchase RP here (Amazon Affiliate - NA): https://amzn.to/2qZ3Bmv For League of Legends Related News Check Out ...$$583172$$2020-07-24T20:24:22Z
여름옷$$THICCEST GOLD FISH IN FORTNITE$$Use Code: FRESH | SUBSCRIBE! https://goo.gl/gKMjmQ Follow me @ Twitch: https://www.twitch.tv/fresh Twitter: https://www.twitter.com/mrfreshasian Instagram: ...$$2222915$$2020-07-24T15:39:02Z
여름옷$$Taylor Swift shares a special message with ‘GMA’ about her new album, ‘Folklore’ l GMA$$The singer announced Thursday that she would be releasing her eighth studio album overnight and also released a video for her song “Cardigan.” READ ...$$181818$$2020-07-24T14:24:47Z
여름옷$$6 Stages Of A Cat Falling In Love With His Baby Sister | The Dodo$$Watch this cat very slowly fall in love with his new baby sister ❤️ You can keep up with Milo and Amelia's adventures on YouTube: thedo.do/malamutes.$$1192720$$2020-07-24T20:00:01Z
여름옷$$2 Chicago Christopher Columbus Statues Taken Down$$Two statues of Christopher Columbus were removed from Chicago neighborhoods. One was hoisted off its pedestal in a park in Downtown Chicago in the dead ...$$131017$$2020-07-25T09:10:37Z
여름옷$$Ava DuVernay: Trump's Assault On Portland Isn't A Republican Vs. Democrat Issue - EXTENDED INTERV…$$In this extended interview, Emmy and Peabody Award-winner Ava DuVernay, the filmmaker behind such films as "Selma," and "13th," joins Stephen for a wide ...$$578591$$2020-07-24T22:05:24Z
여름옷$$Taylor Swift shares a special message with ‘GMA’ about her new album, ‘Folklore’ l GMA$$The singer announced Thursday that she would be releasing her eighth studio album overnight and also released a video for her song “Cardigan.” READ ...$$181818$$2020-07-24T14:24:47Z
여름옷$$Why RV Sales Are Growing$$In the years that followed the financial crisis, sales of RVs began booming. Once considered a pretty dowdy way to travel, RVs have benefitted from slick industry ...$$572730$$2020-07-24T18:42:13Z
여름옷$$DDG - Moonwalking In Calabasas (Official Audio)$$Available on ALL streaming platforms: Spotify: https://open.spotify.com/album/1dF1jqzRm3QRbWnpuLWaBo?si=vxJfnOjWTXetB29H5uLEFQ Apple Music: ...$$357041$$2020-07-25T04:03:09Z
Process finished with exit code 0
natural langueage 예제를 해봄 (서비스계정 만들고 json 다운)--> 환경변수로 설정후 gcloud 관련 다운 --> 코드 실행
psc@psc-800G5H-800G5S:~$ python app.py Text: 여름옷, 세일! Sentiment: 0.899999976158, 0.899999976158
여기서 sentiment method가 아니라 saliance 메소드로 중요도를 쳌하면 될듯.
예시 2번째 이번에는 항목 분석을 해봄 python app2.py Representative name for the entity: summerlookbook #여름옷하울 #패션 heart 옷 정보 - 달트 / 하즈닝 플라워 원피스 -navy / 49000원 - 머랭 / 복숭아 체크 ops - long / 27500원 - 머랭 / 스티치 라인 코튼 Entity type: CONSUMER_GOOD Salience score: 0.275039374828 Mention text: summerlookbook #여름옷하울 #패션 heart 옷 정보 - 달트 / 하즈닝 플라워 원피스 - navy / 49000원 - 머랭 / 복숭아 체크 ops - long / 27500원 - 머랭 / 스티치 라인 코튼 Mention type: PROPER Representative name for the entity: 원피스 Entity type: OTHER Salience score: 0.271961659193 Mention text: 원피스 Mention type: COMMON Representative name for the entity: 여름옷 Entity type: OTHER Salience score: 0.252548187971 Mention text: 여름옷 Mention type: COMMON Representative name for the entity: 쇼핑 Entity type: OTHER Salience score: 0.200450778008 Mention text: 쇼핑 Mention type: COMMON Representative name for the entity: 49000원 Entity type: PRICE Salience score: 0.0 value: 49000.000000 currency: KRW Mention text: 49000원 Mention type: TYPE_UNKNOWN Representative name for the entity: 27500원 Entity type: PRICE Salience score: 0.0 value: 27500.000000 currency: KRW Mention text: 27500원 Mention type: TYPE_UNKNOWN Representative name for the entity: 30 Entity type: NUMBER Salience score: 0.0 value: 30 Mention text: 30 Mention type: TYPE_UNKNOWN Representative name for the entity: 49000 Entity type: NUMBER Salience score: 0.0 value: 49000 Mention text: 49000 Mention type: TYPE_UNKNOWN Representative name for the entity: 27500 Entity type: NUMBER Salience score: 0.0 value: 27500 Mention text: 27500 Mention type: TYPE_UNKNOWN Language of the text: ko
https://cloud.google.com/natural-language/docs/reference/rest/v1/Entity?hl=ko#Type entitiy type에 대한 것이다. UNKNOWN과 CONSUMER_GOOD, PERSON에 해당하는 word 중, 중요도가 가장 높은 2개의 단어만 골라야 겠다.
언어도 langdetect를 통해 적절히 식별해야겠다
category: 여름옷 ko Representative name for the entity: 여름옷 Entity type: OTHER Salience score: 0.365738689899 Representative name for the entity: 원피스 Entity type: OTHER Salience score: 0.355580627918 Representative name for the entity: 쇼핑 Entity type: OTHER Salience score: 0.278680682182 Representative name for the entity: 30 Entity type: NUMBER Salience score: 0.0 keyword_title: ['\xec\x97\xac\xeb\xa6\x84\xec\x98\xb7', '\xec\x9b\x90\xed\x94\xbc\xec\x8a\xa4', '\xec\x87\xbc\xed\x95\x91'] ko Representative name for the entity: summerlookbook #여름옷하울 #패션 ❤ 옷 정보 - 달트 / 하즈닝 플라워 원피스 -navy / 49000원 - 머랭 / 복숭아 체크 ops - long / 27500원 - 머랭 / 스티치 라인 코튼 Entity type: CONSUMER_GOOD Salience score: 1.0 Representative name for the entity: 49000원 Entity type: PRICE Salience score: 0.0 Representative name for the entity: 27500원 Entity type: PRICE Salience score: 0.0 Representative name for the entity: 49000 Entity type: NUMBER Salience score: 0.0 Representative name for the entity: 27500 Entity type: NUMBER Salience score: 0.0 keyword_desc: ['summerlookbook #\xec\x97\xac\xeb\xa6\x84\xec\x98\xb7\xed\x95\x98\xec\x9a\xb8 #\xed\x8c\xa8\xec\x85\x98 \xe2\x9d\xa4 \xec\x98\xb7 \xec\xa0\x95\xeb\xb3\xb4 - \xeb\x8b\xac\xed\x8a\xb8 / \xed\x95\x98\xec\xa6\x88\xeb\x8b\x9d \xed\x94\x8c\xeb\x9d\xbc\xec\x9b\x8c \xec\x9b\x90\xed\x94\xbc\xec\x8a\xa4 -navy / 49000\xec\x9b\x90 - \xeb\xa8\xb8\xeb\x9e\xad / \xeb\xb3\xb5\xec\x88\xad\xec\x95\x84 \xec\xb2\xb4\xed\x81\xac ops - long / 27500\xec\x9b\x90 - \xeb\xa8\xb8\xeb\x9e\xad / \xec\x8a\xa4\xed\x8b\xb0\xec\xb9\x98 \xeb\x9d\xbc\xec\x9d\xb8 \xec\xbd\x94\xed\x8a\xbc'] viewCount: 145664 publish time: 2020-07-10T09:45:03Z category: 여름옷 ko Representative name for the entity: 하울👗)SPA브랜드 자라 Entity type: CONSUMER_GOOD Salience score: 0.256022572517 Representative name for the entity: 에잇세컨즈 Entity type: CONSUMER_GOOD Salience score: 0.247090145946 Representative name for the entity: 망고 Entity type: OTHER Salience score: 0.173368170857 Representative name for the entity: 사이즈 Entity type: OTHER Salience score: 0.167785465717 Representative name for the entity: 패션 Entity type: OTHER Salience score: 0.155733644962 Representative name for the entity: 159 Entity type: NUMBER Salience score: 0.0 Representative name for the entity: 59 Entity type: NUMBER Salience score: 0.0 Representative name for the entity: 66 Entity type: NUMBER Salience score: 0.0 Representative name for the entity: 에잇 Entity type: NUMBER Salience score: 0.0 keyword_title: ['\xed\x95\x98\xec\x9a\xb8\xf0\x9f\x91\x97)SPA\xeb\xb8\x8c\xeb\x9e\x9c\xeb\x93\x9c \xec\x9e\x90\xeb\x9d\xbc', '\xec\x97\x90\xec\x9e\x87\xec\x84\xb8\xec\xbb\xa8\xec\xa6\x88', '\xeb\xa7\x9d\xea\xb3\xa0', '\xec\x82\xac\xec\x9d\xb4\xec\xa6\x88', '\xed\x8c\xa8\xec\x85\x98']
이제 한글 인코딩에 대해서는 db와 연동할때 다시 알아보기로하고, 이제 trend map을 만드는것을 고민해보겠음. 기본적으로 생각은 2차원 행렬을 통해 각채널간에 공통 구독자 수를 표시하는 것이 목표임, 하지만 단위가 너무 크면 비용이 많이 청구되기에 100명 이내에서 test하는 것을 목표로 하겠음
비디오id--> comment --> comment's owner --> subscribe data 를 100번 정도 반복하여 2차원 행렬을 만들 것임.
{ "nextPageToken": "QURTSl9pMDJtTG83d2M2RjFuMWc0bUMwbHBNeWdmMkVQNFVvQ3Q0elZMMGVuRGtuZE5PcFFKSTN3MUtjZFlsTUUxaThQbmNGUG1PWkIyZWIyZ21qSEt2Tm5sUWJQanB0WjNsOUZIby1MV19ULVFpd01BUXk0QktFbjN2ZHJGMGU=", "items": [ { "snippet": { "totalReplyCount": 0, "canReply": true, "topLevelComment": { "snippet": { "authorChannelUrl": "http://www.youtube.com/channel/UCdpCa748_36Ujkg1gEYva4A", "authorDisplayName": "체리체링", "updatedAt": "2020-08-02T08:12:47Z", "videoId": "r51UJMj9M6Y", "publishedAt": "2020-08-02T08:12:47Z", "viewerRating": "none", "authorChannelId": { "value": "UCdpCa748_36Ujkg1gEYva4A" }, "canRate": true, "textOriginal": "전신샷이 궁금했는데ㅠㅠ", "likeCount": 0, "authorProfileImageUrl": "https://yt3.ggpht.com/a/AATXAJz2t_3iiMQX5YSdR_hseSWbfGenrsil1p7Hfw=s48-c-k-c0xffffffff-no-rj-mo", "textDisplay": "전신샷이 궁금했는데ㅠㅠ" }, "kind": "youtube#comment", "etag": "xfjRH-1N-o9t7p7_adRB3Hwrios", "id": "UgwG1NESFT8E-OetEnB4AaABAg" }, "videoId": "r51UJMj9M6Y", "isPublic": true }, "kind": "youtube#commentThread", "etag": "yZrzb2ra5QDyp6usCA8r46y8oUc", "id": "UgwG1NESFT8E-OetEnB4AaABAg" }, { "snippet": { "totalReplyCount": 0, "canReply": true, "topLevelComment": { "snippet": { "authorChannelUrl": "http://www.youtube.com/channel/UCa0Jx7BDUCdIy5q9fMw312A", "authorDisplayName": "wenwen li", "updatedAt": "2020-08-02T00:35:40Z", "videoId": "r51UJMj9M6Y", "publishedAt": "2020-08-02T00:35:40Z", "viewerRating": "none", "authorChannelId": { "value": "UCa0Jx7BDUCdIy5q9fMw312A" }, "canRate": true, "textOriginal": "언니넘 예쁘세요 키가 몇센치이세요?", "likeCount": 0, "authorProfileImageUrl": "https://yt3.ggpht.com/a/AATXAJyFsTDxpbfj0_O-kQunEV9NL7jurBJ4n3Sftw=s48-c-k-c0xffffffff-no-rj-mo", "textDisplay": "언니넘 예쁘세요 키가 몇센치이세요?" }, "kind": "youtube#comment", "etag": "-kvT9ahXHuogTpAcu4ZjwcI0s2Q", "id": "UgzJwTjVVDb63c95eFp4AaABAg" }, "videoId": "r51UJMj9M6Y", "isPublic": true }, "kind": "youtube#commentThread", "etag": "pcHfJg6Fd9G-jtQZpx3njFgJe3Y", "id": "UgzJwTjVVDb63c95eFp4AaABAg" }, { "snippet": { "totalReplyCount": 0, "canReply": true, "topLevelComment": { "snippet": { "authorChannelUrl": "http://www.youtube.com/channel/UC4LgopE2--HN0u8O6HPdhpg", "authorDisplayName": "Jesse Elias", "updatedAt": "2020-08-01T06:53:15Z", "videoId": "r51UJMj9M6Y", "publishedAt": "2020-08-01T06:53:15Z", "viewerRating": "none", "authorChannelId": { "value": "UC4LgopE2--HN0u8O6HPdhpg" }, "canRate": true, "textOriginal": "Man I wish I can speak Korean so that I can communicate with you. You are so lovely. 😘", "likeCount": 0, "authorProfileImageUrl": "https://yt3.ggpht.com/a/AATXAJwjicezzLfFxXsHrhJTnh7xK7BaMqd-lHSEXA=s48-c-k-c0xffffffff-no-rj-mo", "textDisplay": "Man I wish I can speak Korean so that I can communicate with you. You are so lovely. 😘" }, "kind": "youtube#comment", "etag": "twKQ8_-IHnXZK0GmELF23e0DdDg", "id": "UgzMWFmVfB-KLn-GJvd4AaABAg" }, "videoId": "r51UJMj9M6Y", "isPublic": true }, "kind": "youtube#commentThread", "etag": "UUTRMiJCbuRKdCDUGvBEAaIboc", "id": "UgzMWFmVfB-KLn-GJvd4AaABAg" }, { "snippet": { "totalReplyCount": 0, "canReply": true, "topLevelComment": { "snippet": { "authorChannelUrl": "http://www.youtube.com/channel/UCWLeP0BC-TOYlMnlGMKpog", "authorDisplayName": "온스위치", "updatedAt": "2020-07-31T11:30:13Z", "videoId": "r51UJMj9M6Y", "publishedAt": "2020-07-31T11:30:13Z", "viewerRating": "none", "authorChannelId": { "value": "UCWLeP0BC_-TOYlMnlGMKpog" }, "canRate": true, "textOriginal": "왜 분홍이 아니고 하늘이지요?", "likeCount": 0, "authorProfileImageUrl": "https://yt3.ggpht.com/a/AATXAJx-pCpvFKslPleST80qHBKiyQSp-QGRI-fg1pNf=s48-c-k-c0xffffffff-no-rj-mo", "textDisplay": "왜 분홍이 아니고 하늘이지요?" }, "kind": "youtube#comment", "etag": "G8Fr2QGFTn-g8b0PTiyzmRFjyi8", "id": "UgzBFUyFt6dnJqfVetx4AaABAg" }, "videoId": "r51UJMj9M6Y", "isPublic": true }, "kind": "youtube#commentThread", "etag": "LVZ_PFMHyZl0VuaNDVb2k6aSp6s", "id": "UgzBFUyFt6dnJqfVetx4AaABAg" }, { "snippet": { "totalReplyCount": 0, "canReply": true, "topLevelComment": { "snippet": { "authorChannelUrl": "http://www.youtube.com/channel/UC33xLkYRiae4VACt53zpk5Q", "authorDisplayName": "하연정", "updatedAt": "2020-07-30T09:52:57Z", "videoId": "r51UJMj9M6Y", "publishedAt": "2020-07-30T09:52:57Z", "viewerRating": "none", "authorChannelId": { "value": "UC33xLkYRiae4VACt53zpk5Q" }, "canRate": true, "textOriginal": "키작녀 ㅠㅠ 완전 도움 됬오요 감사합니다!!", "likeCount": 2, "authorProfileImageUrl": "https://yt3.ggpht.com/a/AATXAJzTREi5vokGHI-vb7JAjTRQETjTp3ONPa-Y82mN1g=s48-c-k-c0xffffffff-no-rj-mo", "textDisplay": "키작녀 ㅠㅠ 완전 도움 됬오요 감사합니다!!" }, "kind": "youtube#comment", "etag": "KMcR9UWNeiVSQ6BW6_XFjn0B_N4", "id": "UgxYKLvhEpWGPV6uHD14AaABAg" }, "videoId": "r51UJMj9M6Y", "isPublic": true }, "kind": "youtube#commentThread", "etag": "nyb6yoaAyLS1riu9GPoXamTGcVo", "id": "UgxYKLvhEpWGPV6uHD14AaABAg" } ], "kind": "youtube#commentThreadListResponse", "etag": "wcKheQ5ph43dO0r1eCM2qap_Khg", "pageInfo": { "resultsPerPage": 5, "totalResults": 5 } }
{ "items": [], "kind": "youtube#activityListResponse", "etag": "vyUA0fGtigDqOeprpLWk-tOhxKY", "pageInfo": { "resultsPerPage": 10, "totalResults": 0 } } { "items": [], "kind": "youtube#activityListResponse", "etag": "vyUA0fGtigDqOeprpLWk-tOhxKY", "pageInfo": { "resultsPerPage": 10, "totalResults": 0 } } { "items": [], "kind": "youtube#activityListResponse", "etag": "vyUA0fGtigDqOeprpLWk-tOhxKY", "pageInfo": { "resultsPerPage": 10, "totalResults": 0 } } { "nextPageToken": "CAoQAA", "items": [ { "contentDetails": { "subscription": { "resourceId": { "kind": "youtube#channel", "channelId": "UCJt0j8S_fbr0KGR-f7XBaaQ" } } }, "kind": "youtube#activity", "etag": "ww1H8OB6cOFwPOniXb-OKPUr8aA", "id": "MTMxNTk0NzE1MjUzMjMzNzcxNjk2ODExNjg=" }, { "contentDetails": { "subscription": { "resourceId": { "kind": "youtube#channel", "channelId": "UCZz8q2tZC7QuQiFwPKQ4Bug" } } }, "kind": "youtube#activity", "etag": "FGSbFF37DRXAr-38wplwbzDeoFg", "id": "MTMxNTk0Mjg0NTg1MjMzNzcxNjExOTExODQ=" }, { "contentDetails": { "subscription": { "resourceId": { "kind": "youtube#channel", "channelId": "UC_us_hH43AJtU_A-iXCLmqw" } } }, "kind": "youtube#activity", "etag": "4mlEND5q6WNzgKFmT-R1oZRN_zk", "id": "MTMxNTk0MTAyOTkxMjMzNzcxNjExODgwNDg=" }, { "contentDetails": { "subscription": { "resourceId": { "kind": "youtube#channel", "channelId": "UCuVgoagmU3hmfMwtxG9s4Sw" } } }, "kind": "youtube#activity", "etag": "yBpytN1x1V2rs4jNIJVYKpujdng", "id": "MTMxNTkxOTQ3MzYyMjMzNzcxNjExODc3Mjg=" }, { "contentDetails": { "subscription": { "resourceId": { "kind": "youtube#channel", "channelId": "UCO3tlaeZ6Z0ZN5frMZI3-uQ" } } }, "kind": "youtube#activity", "etag": "4WfCjwNqJyLut-5OYI5_065EQGw", "id": "MTMxNTkwNTY5MjM2MjMzNzcxNjExOTAwMzI=" }, { "contentDetails": { "subscription": { "resourceId": { "kind": "youtube#channel", "channelId": "UC6EyD09YAae38tfAmm383Tg" } } }, "kind": "youtube#activity", "etag": "H6iQcAVKwzc_sgMnSMLdZWvcPzo", "id": "MTMxNTkwMTk5ODg1MjMzNzcxNjExODkwMDg=" }, { "contentDetails": { "subscription": { "resourceId": { "kind": "youtube#channel", "channelId": "UCVnGdyLMChFJJbAtZ9jNz-g" } } }, "kind": "youtube#activity", "etag": "POWDJ4sUmD9X5RzMbMfVbUsMdd0", "id": "MTMxNTg5MDE2NTU5MjMzNzcxNjExODkyNjQ=" }, { "contentDetails": { "subscription": { "resourceId": { "kind": "youtube#channel", "channelId": "UC4nzIAyr420YzQjM-mLWq1g" } } }, "kind": "youtube#activity", "etag": "QlwkEuZoOqakDknhCq9grbz7j7M", "id": "MTMxNTg4NDA1MTE2MjMzNzcxNjExODk2NDg=" }, { "contentDetails": { "subscription": { "resourceId": { "kind": "youtube#channel", "channelId": "UCyznn3etx_6fSK7576JSrKg" } } }, "kind": "youtube#activity", "etag": "TabwPA9yCzqqYWSA5qrSqe94KqU", "id": "MTMxNTg3Njk5NDY3MjMzNzcxNjExODg2ODg=" }, { "contentDetails": { "subscription": { "resourceId": { "kind": "youtube#channel", "channelId": "UCWxuirAfcW7VK_jRaSjIEbA" } } }, "kind": "youtube#activity", "etag": "IEXsAHIFwD6DOnc3-eFMABMqByg", "id": "MTMxNTg2ODk0NzU0MjMzNzcxNjExODgxNzY=" } ], "kind": "youtube#activityListResponse", "etag": "p3J85NHr1pOPW-KhMzJ_2MkEWis", "pageInfo": { "resultsPerPage": 10, "totalResults": 30 } } { "items": [], "kind": "youtube#activityListResponse", "etag": "vyUA0fGtigDqOeprpLWk-tOhxKY", "pageInfo": { "resultsPerPage": 10, "totalResults": 0 } }
default가 구독정보 공개인데 생각보다 구독정보 숨김을 한 유저가 많다. 특히 한국이 더 그런것 같기더 하다.
{u'UC6EyD09YAae38tfAmm383Tg': {u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCWxuirAfcW7VK_jRaSjIEbA': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCyznn3etx_6fSK7576JSrKg': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCJt0j8S_fbr0KGR-f7XBaaQ': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1}, u'UC_us_hH43AJtU_A-iXCLmqw': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1}, u'UC4nzIAyr420YzQjM-mLWq1g': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCVnGdyLMChFJJbAtZ9jNz-g': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCZz8q2tZC7QuQiFwPKQ4Bug': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCuVgoagmU3hmfMwtxG9s4Sw': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}}
그러나 다음 page를 검색하는데 문제가 좀 있다. 이것 만 끝내면 trend-map은 완료다. 오늘은 이 page 문제를 끝내고 내일은 container 간 통신에 대해 공부하고 container cummunity
page문제를 고쳤다 오타였다 ...
{u'UCtGoikgbxP4F3rgI9PldI9g': {u'UC7dHBh9QmYF1L0TOeGIzZgw': 1, u'UCG4wigbjnwzBIck_8t_IWSg': 1, u'UCcOdNCF5e5Ev-57AWf_LpkA': 1, u'UC4eYXhJI4-7wSWc8UNRwD4A': 1, u'UCWLPwsWzRmmKfrapcdICgaA': 1, u'UCtUId5WFnN82GdDy7DgaQ7w': 1, u'UC22BdTgxefuvUivrjesETjg': 1, u'UC0L1suV8pVgO4pCAIBNGx5w': 1, u'UCG-iSMVtWbbwDDXgXXypARQ': 1}, u'UCWxuirAfcW7VK_jRaSjIEbA': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCcOdNCF5e5Ev-57AWf_LpkA': {u'UCtGoikgbxP4F3rgI9PldI9g': 1, u'UC7dHBh9QmYF1L0TOeGIzZgw': 1, u'UCG4wigbjnwzBIck_8t_IWSg': 1, u'UC4eYXhJI4-7wSWc8UNRwD4A': 1, u'UCWLPwsWzRmmKfrapcdICgaA': 1, u'UCtUId5WFnN82GdDy7DgaQ7w': 1, u'UC22BdTgxefuvUivrjesETjg': 1, u'UC0L1suV8pVgO4pCAIBNGx5w': 1, u'UCG-iSMVtWbbwDDXgXXypARQ': 1}, u'UC4eYXhJI4-7wSWc8UNRwD4A': {u'UCtGoikgbxP4F3rgI9PldI9g': 1, u'UC7dHBh9QmYF1L0TOeGIzZgw': 1, u'UCG4wigbjnwzBIck_8t_IWSg': 1, u'UCcOdNCF5e5Ev-57AWf_LpkA': 1, u'UCWLPwsWzRmmKfrapcdICgaA': 1, u'UCtUId5WFnN82GdDy7DgaQ7w': 1, u'UC22BdTgxefuvUivrjesETjg': 1, u'UC0L1suV8pVgO4pCAIBNGx5w': 1, u'UCG-iSMVtWbbwDDXgXXypARQ': 1}, u'UC8a87KN4-w-ExcGufTeX9KQ': {u'UC_gUM8rL-Lrg6O3adPW9K1g': 1, u'UC_UE7maDDe8OqqC8-TtXaKg': 1, u'UC21WwL9XSGpqcvZgJg6jhIw': 1, u'UCialsmUlTRABKPw31VDx1eQ': 1, u'UCiE86yS_VM7qjiICqRPmwLQ': 1, u'UC89T-BR3lxaq89mqx6qPGfA': 1, u'UCjDQKxiTVpXutZc2Ra9wCAg': 1, u'UClrMJRlvoyoWsVlB-7c61PQ': 1}, u'UCjDQKxiTVpXutZc2Ra9wCAg': {u'UC_gUM8rL-Lrg6O3adPW9K1g': 1, u'UC21WwL9XSGpqcvZgJg6jhIw': 1, u'UCialsmUlTRABKPw31VDx1eQ': 1, u'UCiE86yS_VM7qjiICqRPmwLQ': 1, u'UC8a87KN4-w-ExcGufTeX9KQ': 1, u'UC89T-BR3lxaq89mqx6qPGfA': 1, u'UC_UE7maDDe8OqqC8-TtXaKg': 1, u'UClrMJRlvoyoWsVlB-7c61PQ': 1}, u'UCJt0j8S_fbr0KGR-f7XBaaQ': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1}, u'UCiE86yS_VM7qjiICqRPmwLQ': {u'UC_gUM8rL-Lrg6O3adPW9K1g': 1, u'UC_UE7maDDe8OqqC8-TtXaKg': 1, u'UC21WwL9XSGpqcvZgJg6jhIw': 1, u'UCialsmUlTRABKPw31VDx1eQ': 1, u'UC8a87KN4-w-ExcGufTeX9KQ': 1, u'UC89T-BR3lxaq89mqx6qPGfA': 1, u'UCjDQKxiTVpXutZc2Ra9wCAg': 1, u'UClrMJRlvoyoWsVlB-7c61PQ': 1}, u'UC7dHBh9QmYF1L0TOeGIzZgw': {u'UCtGoikgbxP4F3rgI9PldI9g': 1, u'UCG4wigbjnwzBIck_8t_IWSg': 1, u'UCcOdNCF5e5Ev-57AWf_LpkA': 1, u'UC4eYXhJI4-7wSWc8UNRwD4A': 1, u'UCWLPwsWzRmmKfrapcdICgaA': 1, u'UCtUId5WFnN82GdDy7DgaQ7w': 1, u'UC22BdTgxefuvUivrjesETjg': 1, u'UC0L1suV8pVgO4pCAIBNGx5w': 1, u'UCG-iSMVtWbbwDDXgXXypARQ': 1}, u'UC4nzIAyr420YzQjM-mLWq1g': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCG4wigbjnwzBIck_8t_IWSg': {u'UCtGoikgbxP4F3rgI9PldI9g': 1, u'UC7dHBh9QmYF1L0TOeGIzZgw': 1, u'UCcOdNCF5e5Ev-57AWf_LpkA': 1, u'UC4eYXhJI4-7wSWc8UNRwD4A': 1, u'UCWLPwsWzRmmKfrapcdICgaA': 1, u'UCtUId5WFnN82GdDy7DgaQ7w': 1, u'UC22BdTgxefuvUivrjesETjg': 1, u'UCG-iSMVtWbbwDDXgXXypARQ': 1, u'UC0L1suV8pVgO4pCAIBNGx5w': 1}, u'UCtUId5WFnN82GdDy7DgaQ7w': {u'UCtGoikgbxP4F3rgI9PldI9g': 1, u'UC7dHBh9QmYF1L0TOeGIzZgw': 1, u'UCG4wigbjnwzBIck_8t_IWSg': 1, u'UCcOdNCF5e5Ev-57AWf_LpkA': 1, u'UC4eYXhJI4-7wSWc8UNRwD4A': 1, u'UCWLPwsWzRmmKfrapcdICgaA': 1, u'UC22BdTgxefuvUivrjesETjg': 1, u'UC0L1suV8pVgO4pCAIBNGx5w': 1, u'UCG-iSMVtWbbwDDXgXXypARQ': 1}, u'UC_UE7maDDe8OqqC8-TtXaKg': {u'UC_gUM8rL-Lrg6O3adPW9K1g': 1, u'UC21WwL9XSGpqcvZgJg6jhIw': 1, u'UCialsmUlTRABKPw31VDx1eQ': 1, u'UCiE86yS_VM7qjiICqRPmwLQ': 1, u'UC8a87KN4-w-ExcGufTeX9KQ': 1, u'UC89T-BR3lxaq89mqx6qPGfA': 1, u'UCjDQKxiTVpXutZc2Ra9wCAg': 1, u'UClrMJRlvoyoWsVlB-7c61PQ': 1}, u'UCG-iSMVtWbbwDDXgXXypARQ': {u'UCtGoikgbxP4F3rgI9PldI9g': 1, u'UC7dHBh9QmYF1L0TOeGIzZgw': 1, u'UCG4wigbjnwzBIck_8t_IWSg': 1, u'UCcOdNCF5e5Ev-57AWf_LpkA': 1, u'UC4eYXhJI4-7wSWc8UNRwD4A': 1, u'UCWLPwsWzRmmKfrapcdICgaA': 1, u'UCtUId5WFnN82GdDy7DgaQ7w': 1, u'UC22BdTgxefuvUivrjesETjg': 1, u'UC0L1suV8pVgO4pCAIBNGx5w': 1}, u'UCuVgoagmU3hmfMwtxG9s4Sw': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UC6EyD09YAae38tfAmm383Tg': {u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCyznn3etx_6fSK7576JSrKg': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UC_us_hH43AJtU_A-iXCLmqw': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1}, u'UC89T-BR3lxaq89mqx6qPGfA': {u'UC_gUM8rL-Lrg6O3adPW9K1g': 1, u'UC_UE7maDDe8OqqC8-TtXaKg': 1, u'UC21WwL9XSGpqcvZgJg6jhIw': 1, u'UCialsmUlTRABKPw31VDx1eQ': 1, u'UCiE86yS_VM7qjiICqRPmwLQ': 1, u'UC8a87KN4-w-ExcGufTeX9KQ': 1, u'UCjDQKxiTVpXutZc2Ra9wCAg': 1, u'UClrMJRlvoyoWsVlB-7c61PQ': 1}, u'UC22BdTgxefuvUivrjesETjg': {u'UCtGoikgbxP4F3rgI9PldI9g': 1, u'UC7dHBh9QmYF1L0TOeGIzZgw': 1, u'UCG4wigbjnwzBIck_8t_IWSg': 1, u'UCcOdNCF5e5Ev-57AWf_LpkA': 1, u'UC4eYXhJI4-7wSWc8UNRwD4A': 1, u'UCWLPwsWzRmmKfrapcdICgaA': 1, u'UCtUId5WFnN82GdDy7DgaQ7w': 1, u'UC0L1suV8pVgO4pCAIBNGx5w': 1, u'UCG-iSMVtWbbwDDXgXXypARQ': 1}, u'UCialsmUlTRABKPw31VDx1eQ': {u'UC_gUM8rL-Lrg6O3adPW9K1g': 1, u'UC_UE7maDDe8OqqC8-TtXaKg': 1, u'UC21WwL9XSGpqcvZgJg6jhIw': 1, u'UCiE86yS_VM7qjiICqRPmwLQ': 1, u'UC8a87KN4-w-ExcGufTeX9KQ': 1, u'UC89T-BR3lxaq89mqx6qPGfA': 1, u'UCjDQKxiTVpXutZc2Ra9wCAg': 1, u'UClrMJRlvoyoWsVlB-7c61PQ': 1}, u'UC_gUM8rL-Lrg6O3adPW9K1g': {u'UC_UE7maDDe8OqqC8-TtXaKg': 1, u'UC21WwL9XSGpqcvZgJg6jhIw': 1, u'UCialsmUlTRABKPw31VDx1eQ': 1, u'UCiE86yS_VM7qjiICqRPmwLQ': 1, u'UC8a87KN4-w-ExcGufTeX9KQ': 1, u'UC89T-BR3lxaq89mqx6qPGfA': 1, u'UCjDQKxiTVpXutZc2Ra9wCAg': 1, u'UClrMJRlvoyoWsVlB-7c61PQ': 1}, u'UCVnGdyLMChFJJbAtZ9jNz-g': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCZz8q2tZC7QuQiFwPKQ4Bug': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCZz8q2tZC7QuQiFwPKQ4Bug': {u'UC6EyD09YAae38tfAmm383Tg': 1, u'UCWxuirAfcW7VK_jRaSjIEbA': 1, u'UC4nzIAyr420YzQjM-mLWq1g': 1, u'UCVnGdyLMChFJJbAtZ9jNz-g': 1, u'UCO3tlaeZ6Z0ZN5frMZI3-uQ': 1, u'UCyznn3etx_6fSK7576JSrKg': 1, u'UCJt0j8S_fbr0KGR-f7XBaaQ': 1, u'UCuVgoagmU3hmfMwtxG9s4Sw': 1, u'UC_us_hH43AJtU_A-iXCLmqw': 1}, u'UCWLPwsWzRmmKfrapcdICgaA': {u'UCtGoikgbxP4F3rgI9PldI9g': 1, u'UC7dHBh9QmYF1L0TOeGIzZgw': 1, u'UCG4wigbjnwzBIck_8t_IWSg': 1, u'UCcOdNCF5e5Ev-57AWf_LpkA': 1, u'UC4eYXhJI4-7wSWc8UNRwD4A': 1, u'UCtUId5WFnN82GdDy7DgaQ7w': 1, u'UC22BdTgxefuvUivrjesETjg': 1, u'UC0L1suV8pVgO4pCAIBNGx5w': 1, u'UCG-iSMVtWbbwDDXgXXypARQ': 1}, u'UC21WwL9XSGpqcvZgJg6jhIw': {u'UC_gUM8rL-Lrg6O3adPW9K1g': 1, u'UC_UE7maDDe8OqqC8-TtXaKg': 1, u'UCialsmUlTRABKPw31VDx1eQ': 1, u'UCiE86yS_VM7qjiICqRPmwLQ': 1, u'UC8a87KN4-w-ExcGufTeX9KQ': 1, u'UC89T-BR3lxaq89mqx6qPGfA': 1, u'UCjDQKxiTVpXutZc2Ra9wCAg': 1, u'UClrMJRlvoyoWsVlB-7c61PQ': 1}, u'UC0L1suV8pVgO4pCAIBNGx5w': {u'UCtGoikgbxP4F3rgI9PldI9g': 1, u'UC7dHBh9QmYF1L0TOeGIzZgw': 1, u'UCG4wigbjnwzBIck_8t_IWSg': 1, u'UCcOdNCF5e5Ev-57AWf_LpkA': 1, u'UC4eYXhJI4-7wSWc8UNRwD4A': 1, u'UCWLPwsWzRmmKfrapcdICgaA': 1, u'UCtUId5WFnN82GdDy7DgaQ7w': 1, u'UC22BdTgxefuvUivrjesETjg': 1, u'UCG-iSMVtWbbwDDXgXXypARQ': 1}, u'UClrMJRlvoyoWsVlB-7c61PQ': {u'UC_gUM8rL-Lrg6O3adPW9K1g': 1, u'UC_UE7maDDe8OqqC8-TtXaKg': 1, u'UC21WwL9XSGpqcvZgJg6jhIw': 1, u'UCiE86yS_VM7qjiICqRPmwLQ': 1, u'UC8a87KN4-w-ExcGufTeX9KQ': 1, u'UC89T-BR3lxaq89mqx6qPGfA': 1, u'UCjDQKxiTVpXutZc2Ra9wCAg': 1, u'UCialsmUlTRABKPw31VDx1eQ': 1}}
이제 저걸로 그래프 그릴때, 중복 체크하고 각 채널간 크기는 구독자수로 해서 이쁘게 그리면 된다
거의 끝난듯 일단 이슈 닫겠음
추가할 사항:
,