youtube-dl의 extrator 쓰기 강좌 3/4
10797 단어 Pythonyoutube-dl
새해 복 많이 받으세요.
새해 복 많이 받으세요.
여러가지 바빠서 정신을 차린 지 벌써 연말이 지났다.
올해도 잘 부탁드립니다.
저번에 계속.
아직 안 보신 분들은 보세요.
지난번에 오류 처리를 썼습니다.
이번에 우리는 최소한 이상의 정보를 얻을 것이다.
최종 목표
저번에 여기서부터.
사이트에서 뭘 볼 수 있어요.
그리고이거 할게요..열어봐.
제가 적당한 배송 서비스를 가져왔어요.
1권과 마찬가지로 개발자 도구를 열고 비슷한 통신을 찾아보세요.
크롬도 Ctrl+Shift+I
로 열었다.
먼저 투고자의 이름으로 검색하다
조금만 구르면 기고인의 이름과 설명문 등이 나온다.
DevoTools로 이걸 검색하면 이런 느낌이에요.
기고인의 이름 등이 나왔다.
이 API 끝점의 URL은 https://api.whowatch.tv/lives/19199115
입니다.
이 정보 추출
먼저 다운로드'https://api.whowatch.tv/lives/' + video_id
를 JSON으로 처리합니다.metadata = self._download_json('https://api.whowatch.tv/lives/' + video_id, video_id)
그럼 _real_extract
의 반환값이 dict
로 되돌아온 거 기억나세요?
이 dict
의 키는 일정한 규정이 있는데, 이것은
예를 들어 이번에 처리된 투고인의 이름과 투고인의 닉네임은 각각 README.md
과 OUTPUT TEMPLATE
이다.
이 규칙에 따라 설정합니다uploader
.# その他の情報を取り出す
uploader = metadata['live']['user']['name']
uploader_id = metadata['live']['user']['user_path']
return {
# (略)
# 投稿者情報
'uploader': uploader,
'uploader_id': uploader_id,
}
마찬가지로 uploader_id
키는 미리 보기 그림dict
옵션을 설정할 수 있습니다.thumbnail = metadata['live']['latest_thumbnail_url']
return {
# (略)
# サムネイル
'thumbnail': thumbnail,
}
끝말
이번에는 최소한 이상의 정보를 써서 얻었다.
이렇게 되면 최종 목표와 같은extractor가 완성됩니다. 다음은 유튜브-dl의 인코딩 규칙을 간단하게 만들고 싶습니다.thumbnail
등 오류 처리는 유튜브-dl에서 쉽게 할 수 있는 방법이 있기 때문에 여러분에게 과제가 되고 싶습니다.
여기까지 봐주셔서 감사합니다.
다음: -- write-thumbnail의 KeyError 섹션에 게재됩니다.
부록: 이번 코드
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import ExtractorError
class WhoWatchIE(InfoExtractor):
_VALID_URL = r'https?://whowatch\.tv/viewer/(?P<id>\d+)/?'
def _real_extract(self, url):
video_id = self._match_id(url)
# URL、IDの順で指定する
live_data = self._download_json('https://api.whowatch.tv/lives/' + video_id + '/play', video_id)
metadata = self._download_json('https://api.whowatch.tv/lives/' + video_id, video_id)
# デバッグ用: live_dataを表示する
# self.to_screen(live_data)
# HLSのURL
hls_url = live_data.get('hls_url')
# hls_urlが無ければエラーを投げる
if not hls_url:
raise ExtractorError(live_data.get('error_message'), expected=True)
# とりあえずHLSのフォーマットを検索する
formats = self._extract_m3u8_formats(
hls_url, video_id, ext='mp4', entry_protocol='m3u8_native',
m3u8_id='hls')
# 並び替える。これによって何も設定しない状態で最高画質をダウンロードするようにする
self._sort_formats(formats)
# その他の情報を取り出す
uploader = metadata['live']['user']['name']
uploader_id = metadata['live']['user']['user_path']
thumbnail = metadata['live']['latest_thumbnail_url']
return {
'id': video_id,
# 鉤括弧があったので同時に外してしまう
'title': live_data['share_info']['live_title'][1:-1],
# フォーマット一覧
'formats': formats,
# これは生放送です
'is_live': True,
# 投稿者情報
'uploader': uploader,
'uploader_id': uploader_id,
# サムネイル
'thumbnail': thumbnail,
}
이번 코드는 제4권
Reference
이 문제에 관하여(youtube-dl의 extrator 쓰기 강좌 3/4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nao20010128nao/items/43d82cdd0278ae25f725
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
아직 안 보신 분들은 보세요.
지난번에 오류 처리를 썼습니다.
이번에 우리는 최소한 이상의 정보를 얻을 것이다.
최종 목표
저번에 여기서부터.
사이트에서 뭘 볼 수 있어요.
그리고이거 할게요..열어봐.
제가 적당한 배송 서비스를 가져왔어요.
1권과 마찬가지로 개발자 도구를 열고 비슷한 통신을 찾아보세요.
크롬도 Ctrl+Shift+I
로 열었다.
먼저 투고자의 이름으로 검색하다
조금만 구르면 기고인의 이름과 설명문 등이 나온다.
DevoTools로 이걸 검색하면 이런 느낌이에요.
기고인의 이름 등이 나왔다.
이 API 끝점의 URL은 https://api.whowatch.tv/lives/19199115
입니다.
이 정보 추출
먼저 다운로드'https://api.whowatch.tv/lives/' + video_id
를 JSON으로 처리합니다.metadata = self._download_json('https://api.whowatch.tv/lives/' + video_id, video_id)
그럼 _real_extract
의 반환값이 dict
로 되돌아온 거 기억나세요?
이 dict
의 키는 일정한 규정이 있는데, 이것은
예를 들어 이번에 처리된 투고인의 이름과 투고인의 닉네임은 각각 README.md
과 OUTPUT TEMPLATE
이다.
이 규칙에 따라 설정합니다uploader
.# その他の情報を取り出す
uploader = metadata['live']['user']['name']
uploader_id = metadata['live']['user']['user_path']
return {
# (略)
# 投稿者情報
'uploader': uploader,
'uploader_id': uploader_id,
}
마찬가지로 uploader_id
키는 미리 보기 그림dict
옵션을 설정할 수 있습니다.thumbnail = metadata['live']['latest_thumbnail_url']
return {
# (略)
# サムネイル
'thumbnail': thumbnail,
}
끝말
이번에는 최소한 이상의 정보를 써서 얻었다.
이렇게 되면 최종 목표와 같은extractor가 완성됩니다. 다음은 유튜브-dl의 인코딩 규칙을 간단하게 만들고 싶습니다.thumbnail
등 오류 처리는 유튜브-dl에서 쉽게 할 수 있는 방법이 있기 때문에 여러분에게 과제가 되고 싶습니다.
여기까지 봐주셔서 감사합니다.
다음: -- write-thumbnail의 KeyError 섹션에 게재됩니다.
부록: 이번 코드
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import ExtractorError
class WhoWatchIE(InfoExtractor):
_VALID_URL = r'https?://whowatch\.tv/viewer/(?P<id>\d+)/?'
def _real_extract(self, url):
video_id = self._match_id(url)
# URL、IDの順で指定する
live_data = self._download_json('https://api.whowatch.tv/lives/' + video_id + '/play', video_id)
metadata = self._download_json('https://api.whowatch.tv/lives/' + video_id, video_id)
# デバッグ用: live_dataを表示する
# self.to_screen(live_data)
# HLSのURL
hls_url = live_data.get('hls_url')
# hls_urlが無ければエラーを投げる
if not hls_url:
raise ExtractorError(live_data.get('error_message'), expected=True)
# とりあえずHLSのフォーマットを検索する
formats = self._extract_m3u8_formats(
hls_url, video_id, ext='mp4', entry_protocol='m3u8_native',
m3u8_id='hls')
# 並び替える。これによって何も設定しない状態で最高画質をダウンロードするようにする
self._sort_formats(formats)
# その他の情報を取り出す
uploader = metadata['live']['user']['name']
uploader_id = metadata['live']['user']['user_path']
thumbnail = metadata['live']['latest_thumbnail_url']
return {
'id': video_id,
# 鉤括弧があったので同時に外してしまう
'title': live_data['share_info']['live_title'][1:-1],
# フォーマット一覧
'formats': formats,
# これは生放送です
'is_live': True,
# 投稿者情報
'uploader': uploader,
'uploader_id': uploader_id,
# サムネイル
'thumbnail': thumbnail,
}
이번 코드는 제4권
Reference
이 문제에 관하여(youtube-dl의 extrator 쓰기 강좌 3/4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nao20010128nao/items/43d82cdd0278ae25f725
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
조금만 구르면 기고인의 이름과 설명문 등이 나온다.
DevoTools로 이걸 검색하면 이런 느낌이에요.
기고인의 이름 등이 나왔다.
이 API 끝점의 URL은
https://api.whowatch.tv/lives/19199115
입니다.이 정보 추출
먼저 다운로드'https://api.whowatch.tv/lives/' + video_id
를 JSON으로 처리합니다.metadata = self._download_json('https://api.whowatch.tv/lives/' + video_id, video_id)
그럼 _real_extract
의 반환값이 dict
로 되돌아온 거 기억나세요?
이 dict
의 키는 일정한 규정이 있는데, 이것은
예를 들어 이번에 처리된 투고인의 이름과 투고인의 닉네임은 각각 README.md
과 OUTPUT TEMPLATE
이다.
이 규칙에 따라 설정합니다uploader
.# その他の情報を取り出す
uploader = metadata['live']['user']['name']
uploader_id = metadata['live']['user']['user_path']
return {
# (略)
# 投稿者情報
'uploader': uploader,
'uploader_id': uploader_id,
}
마찬가지로 uploader_id
키는 미리 보기 그림dict
옵션을 설정할 수 있습니다.thumbnail = metadata['live']['latest_thumbnail_url']
return {
# (略)
# サムネイル
'thumbnail': thumbnail,
}
끝말
이번에는 최소한 이상의 정보를 써서 얻었다.
이렇게 되면 최종 목표와 같은extractor가 완성됩니다. 다음은 유튜브-dl의 인코딩 규칙을 간단하게 만들고 싶습니다.thumbnail
등 오류 처리는 유튜브-dl에서 쉽게 할 수 있는 방법이 있기 때문에 여러분에게 과제가 되고 싶습니다.
여기까지 봐주셔서 감사합니다.
다음: -- write-thumbnail의 KeyError 섹션에 게재됩니다.
부록: 이번 코드
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import ExtractorError
class WhoWatchIE(InfoExtractor):
_VALID_URL = r'https?://whowatch\.tv/viewer/(?P<id>\d+)/?'
def _real_extract(self, url):
video_id = self._match_id(url)
# URL、IDの順で指定する
live_data = self._download_json('https://api.whowatch.tv/lives/' + video_id + '/play', video_id)
metadata = self._download_json('https://api.whowatch.tv/lives/' + video_id, video_id)
# デバッグ用: live_dataを表示する
# self.to_screen(live_data)
# HLSのURL
hls_url = live_data.get('hls_url')
# hls_urlが無ければエラーを投げる
if not hls_url:
raise ExtractorError(live_data.get('error_message'), expected=True)
# とりあえずHLSのフォーマットを検索する
formats = self._extract_m3u8_formats(
hls_url, video_id, ext='mp4', entry_protocol='m3u8_native',
m3u8_id='hls')
# 並び替える。これによって何も設定しない状態で最高画質をダウンロードするようにする
self._sort_formats(formats)
# その他の情報を取り出す
uploader = metadata['live']['user']['name']
uploader_id = metadata['live']['user']['user_path']
thumbnail = metadata['live']['latest_thumbnail_url']
return {
'id': video_id,
# 鉤括弧があったので同時に外してしまう
'title': live_data['share_info']['live_title'][1:-1],
# フォーマット一覧
'formats': formats,
# これは生放送です
'is_live': True,
# 投稿者情報
'uploader': uploader,
'uploader_id': uploader_id,
# サムネイル
'thumbnail': thumbnail,
}
이번 코드는 제4권
Reference
이 문제에 관하여(youtube-dl의 extrator 쓰기 강좌 3/4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nao20010128nao/items/43d82cdd0278ae25f725
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
metadata = self._download_json('https://api.whowatch.tv/lives/' + video_id, video_id)
# その他の情報を取り出す
uploader = metadata['live']['user']['name']
uploader_id = metadata['live']['user']['user_path']
return {
# (略)
# 投稿者情報
'uploader': uploader,
'uploader_id': uploader_id,
}
thumbnail = metadata['live']['latest_thumbnail_url']
return {
# (略)
# サムネイル
'thumbnail': thumbnail,
}
이번에는 최소한 이상의 정보를 써서 얻었다.
이렇게 되면 최종 목표와 같은extractor가 완성됩니다. 다음은 유튜브-dl의 인코딩 규칙을 간단하게 만들고 싶습니다.
thumbnail
등 오류 처리는 유튜브-dl에서 쉽게 할 수 있는 방법이 있기 때문에 여러분에게 과제가 되고 싶습니다.여기까지 봐주셔서 감사합니다.
다음: -- write-thumbnail의 KeyError 섹션에 게재됩니다.
부록: 이번 코드
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import ExtractorError
class WhoWatchIE(InfoExtractor):
_VALID_URL = r'https?://whowatch\.tv/viewer/(?P<id>\d+)/?'
def _real_extract(self, url):
video_id = self._match_id(url)
# URL、IDの順で指定する
live_data = self._download_json('https://api.whowatch.tv/lives/' + video_id + '/play', video_id)
metadata = self._download_json('https://api.whowatch.tv/lives/' + video_id, video_id)
# デバッグ用: live_dataを表示する
# self.to_screen(live_data)
# HLSのURL
hls_url = live_data.get('hls_url')
# hls_urlが無ければエラーを投げる
if not hls_url:
raise ExtractorError(live_data.get('error_message'), expected=True)
# とりあえずHLSのフォーマットを検索する
formats = self._extract_m3u8_formats(
hls_url, video_id, ext='mp4', entry_protocol='m3u8_native',
m3u8_id='hls')
# 並び替える。これによって何も設定しない状態で最高画質をダウンロードするようにする
self._sort_formats(formats)
# その他の情報を取り出す
uploader = metadata['live']['user']['name']
uploader_id = metadata['live']['user']['user_path']
thumbnail = metadata['live']['latest_thumbnail_url']
return {
'id': video_id,
# 鉤括弧があったので同時に外してしまう
'title': live_data['share_info']['live_title'][1:-1],
# フォーマット一覧
'formats': formats,
# これは生放送です
'is_live': True,
# 投稿者情報
'uploader': uploader,
'uploader_id': uploader_id,
# サムネイル
'thumbnail': thumbnail,
}
이번 코드는 제4권
Reference
이 문제에 관하여(youtube-dl의 extrator 쓰기 강좌 3/4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nao20010128nao/items/43d82cdd0278ae25f725텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)