기록2. Youtube 대시보드 만들기 (streamlit)

chaechae·2023년 7월 4일
0

📊 재생목록별 조회수 , today 조회수

2023-07-04
오늘, 어떤 재생목록에서 가장 큰 조회수를 차지했는지 , 어떤 재생목록이 뜨거운 반응을 보이고 있는지 전체적인 컨텐츠 반응을 알아보기 위해서 추가했습니다.

오늘 7월4일 18시 기준으로 현재 ISEGYE IDOL (예능) 편집영상이 전체 719616 조회수중 절반 이상을 차지하고 있네요 ㅎㅎ

특히, 6월21일ISEGYE IDOL:MUSIC 재생목록의 조회수가 1,500,000까지 치솟는걸 확인 할 수 있는데, 해당 날짜에 업로드된 이세계아이돌 오리지널 노래 영상이 큰 인기를 얻었음을 알 수 있습니다.

python 전처리


    total_diff = total_diff[total_diff['playlist_title'] != "ALL : MUSIC (최신순)"] # all music 은 제외
    total_diff.loc[total_diff['playlist_title'].str.contains('YOUTUBE|이세여고|OFFICIAL'), 'playlist_title'] = 'ISEGYE IDOL (예능)' # 이세돌 카테고리 통합
    total_diff.loc[total_diff['playlist_title'].str.contains('MIDDLE|GOMEM'),'playlist_title'] = 'WAKTAVERSE : GOMEM ' 
 
    total_diff = total_diff.groupby(['playlist_title', 'down_at']).agg({'view_count_diff': 'sum'}).reset_index()
    
    total_diff['down_at'] = pd.to_datetime(total_diff['down_at']).dt.strftime('%m-%d')

# nivo chart data 형식을 위한 전처리

    diff = []
    for playlist_title, group in total_diff.groupby('playlist_title'):
        if len(group) > 0:
            
            playlist_title = group.iloc[0]['playlist_title']
            view_count_diff = group.iloc[-1]['view_count_diff']

            diff.append({
                'id': playlist_title,
                'value' : view_count_diff,
                'data' : [{'x': down_at, 'y': view_count_diff} for down_at, view_count_diff in zip(group['down_at'], group['view_count_diff'])][1:] # 받은 시점 하루뒤부터

            })
    today_total = sum(item['value'] for item in diff) # 가장 최근 전체 조회수
  • 주간/월별로 볼 수 있도록 기능 추가 필요
  • 데이터를 주기적으로 받다보면 계속 데이터가 쌓일 텐데 DB 구축하는걸 좀 공부해 볼까..?
  • 즉, API를 통해 채널 데이터를 불러오고 DB에 저장한 다음 DB에 있는 데이터들을 streamlit에 연결 할 수 있다고 들었다. DB구축에 대한 지식이 많이 부족하기 때문에 공부가 필요하다.
    (커뮤니티에 찾아보니 streamlit을 db에 연결 할 수 있다!!! 해보자!!)
profile
다양한 컨텐츠가 있는 곳을 좋아합니다. 시리즈를 참고하시면 편하게 글을 보실 수 있습니다🫠

0개의 댓글