youtube-dl を日本語に対応させる
youtube-dl が動画タイトル内の非ASCII文字を削ってしまう問題への対処。
検索するとyoutube-dl.py 日本語文字対応という記事が見つかりますが、これだと長音などを拾い漏らしてしまうので
def _real_extract(self, url): # ... # simplified title simple_title = re.sub(ur'(?u)([^%s一-龠ぁ-んァ-ヶ゛゜ー0-9A-Za-zヲ-゚]+)' % simple_title_chars, ur'_', video_title) simple_title = simple_title.strip(ur'_') # ...
とでもしておけば漏れが少なくなると思います。ただ、これでもローマ数字を用いたパート分け(PartⅠ, PartⅡ, ...)などには対応できないので、ホワイトリスト方式よりむしろブラックリスト方式を用いて
simple_title = re.sub(ur'(?u)[\x00-\x1F\x7F\\/:*?"<>|]', ur'_', video_title) # セキュリティ上まずそうな文字だけ削る simple_title = simple_title.strip(ur'_')
などとする方が簡明かも。