Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
735 views
�
�F�V~�@s�ddlZddlZddlZddlmZddlZddlm	Z	ddddd�Z
dd	�Zd
d�Zdd
�Z
dS)�N)�ElementTree)�open�en�cCszd|d|d|d|}tjj|�j�}t|�sUtd��ntjdd�}tj|d|�S)	z3Get closed captions from YouTube and parse the XML.z#http://youtube.com/api/timedtext?v=z&lang=z&name=z&tlang=zNo CC available�encodingzutf-8�parser)	�urllib�request�urlopen�read�len�RuntimeError�ET�	XMLParser�
fromstring)�video_id�lang�trackZtlangZcc_urlZ
xml_sourceZutf8_parser�r�../code/getyoutubecc.py�get_ccs"rcCsx|j�}dd�|D�}dd�|D�}idd�|D�d6dd�|D�d6dd�|D�d	6}|S)
z5Translate a single language YouTube XML to EdX sjson.cSsHg|]>}t|jd�t|jd�|jjdd�f�qS)�start�dur�
� )�float�attrib�text�replace)�.0�irrr�
<listcomp>s	zxml2sjson.<locals>.<listcomp>cSs@g|]6\}}}t|d�t||d�|f�qS)g@�@)�int)rr �j�krrrr!s	cSsg|]}|d�qS)rr)rr rrrr!s	rcSsg|]}|d�qS)�r)rr rrrr!s	�endcSsg|]}|d�qS)�r)rr rrrr!s	r)�getchildren)�cc�entries�resultrrr�	xml2sjsons	
r,c
Cs/t|dd��}tj||�WdQXdS)N�wzutf-8)r�json�dump)�sjson�filename�frrr�write_sjson!sr3cCs)t|�}t|�}t||�dS)N)rr,r3)rr1�feedr0rrr�save_youtube_cc&sr5)�urllib.requestr�urllib.error�urllib.parseZ	xml.etreerrr.�codecsrrr,r3r5rrrr�<module>s$