
    VGh                     z    d dl mZ ddlmZmZmZmZmZ ddlm	Z	  G d de      Z
 G d de
      Z G d	 d
e
      Zy)   )InfoExtractor   )ExtractorError
clean_htmlmerge_dictsparse_iso8601url_or_none)traverse_objc                       e Zd ZddiZd Zy)AsobiChannelBaseIEzX-MICROCMS-API-KEY$qRaKehul9AHU8KtL0dnq1OCLKnFec6yrbcz3c                     t        |dt        hfdt        hfdt        hfdddt        hfdt        hfdt        hfd	d
t        hfd	dt        hfd      S )Nidtitlebodycontentsvideo_thumburlpublishedAt	updatedAtchannelname)r   r   description	thumbnail	timestampmodified_timestampr   
channel_id)r
   strr   r	   r   )selfmetadatas     f/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/asobichannel.py_extract_infoz AsobiChannelBaseIE._extract_info   sm    H#-u%"ZL1$mU[MJ'-9#."@!6C51$dSE2	'
 	 		    N)__name__
__module____qualname___MICROCMS_HEADERr"    r#   r!   r   r      s    ,.TU
r#   r   c                   |    e Zd ZdZdZdZdddddd	d
dddddddddddddddddddddddgZdZd Zd  Z	d! Z
d" Zy)#AsobiChannelIEasobichannelASOBI CHANNELz:https?://asobichannel\.asobistore\.jp/watch/(?P<id>[\w-]+)z4https://asobichannel.asobistore.jp/watch/1ypp48qd32p 39df74e872afe032c4eb27b89144fc921ypp48qd32pmp4uP   アイドルマスター ミリオンライブ！ 765プロch 原っぱ通信 #1z$md5:b930bd2199c9b2fd75951ce4aaa7efd2zhttps://images.microcms-assets.io/assets/d2420de4b9194e11beb164f99edb1f95/a8e6f84119f54eb9ab4ce16729239905/%E3%82%B5%E3%83%A0%E3%83%8D%20(1).pngi'e20231012ij=;e20231027u   アイドルマスター
idolmaster)r   extr   r   r   r   upload_dater   modified_dater   r   )r   md5	info_dictz5https://asobichannel.asobistore.jp/watch/redigiwnjzqj 229fa8fb5c591c75ce8c37a497f113f6redigiwnjzqjue   【おまけ放送】アイドルマスター ミリオンライブ！ 765プロch 原っぱ通信 #1z$md5:7d9cd35fb54425a6967822bd564ea2d9zhttps://images.microcms-assets.io/assets/d2420de4b9194e11beb164f99edb1f95/20e5c1d6184242eebc2512a5dec59bf0/P1_%E5%8E%9F%E3%81%A3%E3%81%B1%E3%82%B5%E3%83%A0%E3%83%8D.pngiT2e20231020i(*e20231014)r   r3   r   r   r   r   r5   r   r4   r   r   Nc                 D    | j                  dd d      }dd| i| _        y )Nz8https://asobichannel-api.asobistore.jp/api/v1/vspf/tokenzRetrieving API token)noteAuthorizationzBearer )_download_json_survapi_header)r   tokens     r!   _real_initializezAsobiChannelIE._real_initializeE   s5    ##F' $ ) !075'1BCr#   c                     |d   d   }| j                  d| d|| j                  d      }d| j                  |d   d	   |      iS )
Nr   video_idz0https://survapi.channel.or.jp/proxy/v1/contents/z/get_by_cuidzDownloading vod dataheadersr=   formats
ex_contentstreaming_url)r?   r@   _extract_m3u8_formats)r   rD   r    
content_idvod_datas        r!   _process_vodzAsobiChannelIE._process_vodK   sk    j)*5
&&>zl,WYa((/E ' G
 t11(<2H2Y[cd
 	
r#   c                 J   |d   d   }| j                  d| d|| j                  d      }t        |ddt        hf      }|d	k(  r| j	                  d
d       d}g }n0|dk(  r d}| j                  |d   d   d   |d      }nt        d      t        |ddt        hf      ||dS )Nr   rD   z(https://survapi.channel.or.jp/ex/events/z?embed=channelzDownloading event datarE   dataPlayer_typeposterzLive event has not yet startedT)expectedis_upcomingplayeris_liveChannelCustom_live_url)livez'Unsupported player type {player_type!r}periodstart)release_timestamplive_statusrG   )r?   r@   r
   r   raise_no_formatsrJ   r   r   )r   rD   r    rK   
event_dataplayer_typer\   rG   s           r!   _process_livezAsobiChannelIE._process_liveV   s    j)*5
((6zl.QS[((/G ) I
 #:u/MN("!!"BT!R'KGH$#K006"9-.?@(QU 1 WG !!JKK ".h7]O8\!]&
 	
r#   c                 R   | j                  |      }| j                  d| || j                        }| j                  |      }t	        |dddt
        hf      }|dk(  rt        || j                  ||            S |dk(  rt        || j                  ||            S t        d|      )	Nz)https://channel.microcms.io/api/v1/media/rF   r   
video_type    VODLIVEzUnexpected video type )
	_match_idr?   r'   r"   r
   r   r   rM   r`   r   )r   r   rD   r    inforc   s         r!   _real_extractzAsobiChannelIE._real_extractn   s    >>#&&&7zBH)) ' + !!(+!(Zq3%,PQ
tT%6%6x%JKKtT%7%7(%KLL5j^DEEr#   )r$   r%   r&   IE_NAMEIE_DESC
_VALID_URL_TESTSr@   rB   rM   r`   ri   r(   r#   r!   r*   r*      s    GGNJE1gA l#%",'1&
" G1 |A D",'#%1&
! FD OD	

0Fr#   r*   c                   B    e Zd ZdZdZdZdddddd	d
ddddd	gZd Zy)AsobiChannelTagURLIEzasobichannel:tagr,   z=https?://asobichannel\.asobistore\.jp/tag/(?P<id>[a-z0-9-_]+)z1https://asobichannel.asobistore.jp/tag/bjhh-nbcjaz
bjhh-nbcjauM   アイドルマスター ミリオンライブ！ 765プロch 原っぱ通信)r   r      )r   r7   playlist_mincountz2https://asobichannel.asobistore.jp/tag/hvm5qw3c6odhvm5qw3c6odu   アイマスMOIW2023ラジオ   c                      j                  |      } j                  ||      }t         j                  ||d      ddddt        hf      } j                  d| d| j                  	       fd
} j                   |       ||      S )NF)fatalprops	pagePropsrO   r   zIhttps://channel.microcms.io/api/v1/media?limit=999&filters=(tag[contains])rb   c               3      K   t        dd f      D ]3  } dd| d    t        j                         dj                  |        5 y w)Nr   c                     |d   S )Nr   r(   )_vs     r!   <lambda>zEAsobiChannelTagURLIE._real_extract.<locals>.entries.<locals>.<lambda>   s
    !D' r#   r   z)https://asobichannel.asobistore.jp/watch/r   )_typer   ie_key)r
   r*   r   r"   )r    mediar   s    r!   entriesz3AsobiChannelTagURLIE._real_extract.<locals>.entries   sa     (=Q0RS "FxPT~FVW,335 ((2	 s   AA
)rg   _download_webpager
   _search_nextjs_datar   r?   r'   playlist_result)r   r   tag_idwebpager   r   r   s   `     @r!   ri   z"AsobiChannelTagURLIE._real_extract   s    $((f5T55V5 6 *,3[&&SVRW+XZ ##WX^W__`aD11 $ 3	 ##GIvu==r#   N)r$   r%   r&   rj   rk   rl   rm   ri   r(   r#   r!   ro   ro      sP     GGQJBd
   D4
  F >r#   ro   N)commonr   utilsr   r   r   r   r	   utils.traversalr
   r   r*   ro   r(   r#   r!   <module>r      sB    !  +  aF' aFH(>- (>r#   