mirror of
https://source.netsyms.com/Mirrors/youtube-dl
synced 2026-03-28 22:33:53 +00:00
Compare commits
6 Commits
2016.09.18
...
2016.09.19
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cb57386873 | ||
|
|
59fd8f931d | ||
|
|
70b4cf9b1b | ||
|
|
cc764a6da8 | ||
|
|
d8dbf8707d | ||
|
|
a1da888d0c |
6
.github/ISSUE_TEMPLATE.md
vendored
6
.github/ISSUE_TEMPLATE.md
vendored
@@ -6,8 +6,8 @@
|
||||
|
||||
---
|
||||
|
||||
### Make sure you are using the *latest* version: run `youtube-dl --version` and ensure your version is *2016.09.18*. If it's not read [this FAQ entry](https://github.com/rg3/youtube-dl/blob/master/README.md#how-do-i-update-youtube-dl) and update. Issues with outdated version will be rejected.
|
||||
- [ ] I've **verified** and **I assure** that I'm running youtube-dl **2016.09.18**
|
||||
### Make sure you are using the *latest* version: run `youtube-dl --version` and ensure your version is *2016.09.19*. If it's not read [this FAQ entry](https://github.com/rg3/youtube-dl/blob/master/README.md#how-do-i-update-youtube-dl) and update. Issues with outdated version will be rejected.
|
||||
- [ ] I've **verified** and **I assure** that I'm running youtube-dl **2016.09.19**
|
||||
|
||||
### Before submitting an *issue* make sure you have:
|
||||
- [ ] At least skimmed through [README](https://github.com/rg3/youtube-dl/blob/master/README.md) and **most notably** [FAQ](https://github.com/rg3/youtube-dl#faq) and [BUGS](https://github.com/rg3/youtube-dl#bugs) sections
|
||||
@@ -35,7 +35,7 @@ $ youtube-dl -v <your command line>
|
||||
[debug] User config: []
|
||||
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
|
||||
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
|
||||
[debug] youtube-dl version 2016.09.18
|
||||
[debug] youtube-dl version 2016.09.19
|
||||
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
|
||||
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
|
||||
[debug] Proxy map: {}
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
version 2016.09.19
|
||||
|
||||
Extractors
|
||||
+ [crunchyroll] Check if already authenticated (#10700)
|
||||
- [twitch:stream] Remove fallback to profile extraction when stream is offline
|
||||
* [thisav] Improve title extraction (#10682)
|
||||
* [vyborymos] Improve station info extraction
|
||||
|
||||
|
||||
version 2016.09.18
|
||||
|
||||
Core
|
||||
|
||||
@@ -46,6 +46,13 @@ class CrunchyrollBaseIE(InfoExtractor):
|
||||
login_page = self._download_webpage(
|
||||
self._LOGIN_URL, None, 'Downloading login page')
|
||||
|
||||
def is_logged(webpage):
|
||||
return '<title>Redirecting' in webpage
|
||||
|
||||
# Already logged in
|
||||
if is_logged(login_page):
|
||||
return
|
||||
|
||||
login_form_str = self._search_regex(
|
||||
r'(?P<form><form[^>]+?id=(["\'])%s\2[^>]*>)' % self._LOGIN_FORM,
|
||||
login_page, 'login form', group='form')
|
||||
@@ -69,7 +76,7 @@ class CrunchyrollBaseIE(InfoExtractor):
|
||||
headers={'Content-Type': 'application/x-www-form-urlencoded'})
|
||||
|
||||
# Successful login
|
||||
if '<title>Redirecting' in response:
|
||||
if is_logged(response):
|
||||
return
|
||||
|
||||
error = self._html_search_regex(
|
||||
|
||||
@@ -4,6 +4,7 @@ from __future__ import unicode_literals
|
||||
import re
|
||||
|
||||
from .jwplatform import JWPlatformBaseIE
|
||||
from ..utils import remove_end
|
||||
|
||||
|
||||
class ThisAVIE(JWPlatformBaseIE):
|
||||
@@ -35,7 +36,9 @@ class ThisAVIE(JWPlatformBaseIE):
|
||||
|
||||
video_id = mobj.group('id')
|
||||
webpage = self._download_webpage(url, video_id)
|
||||
title = self._html_search_regex(r'<h1>([^<]*)</h1>', webpage, 'title')
|
||||
title = remove_end(self._html_search_regex(
|
||||
r'<title>([^<]+)</title>', webpage, 'title'),
|
||||
' - 視頻 - ThisAV.com-世界第一中文成人娛樂網站')
|
||||
video_url = self._html_search_regex(
|
||||
r"addVariable\('file','([^']+)'\);", webpage, 'video url', default=None)
|
||||
if video_url:
|
||||
|
||||
@@ -400,11 +400,8 @@ class TwitchStreamIE(TwitchBaseIE):
|
||||
'kraken/streams/%s' % channel_id, channel_id,
|
||||
'Downloading stream JSON').get('stream')
|
||||
|
||||
# Fallback on profile extraction if stream is offline
|
||||
if not stream:
|
||||
return self.url_result(
|
||||
'http://www.twitch.tv/%s/profile' % channel_id,
|
||||
'TwitchProfile', channel_id)
|
||||
raise ExtractorError('%s is offline' % channel_id, expected=True)
|
||||
|
||||
# Channel name may be typed if different case than the original channel name
|
||||
# (e.g. http://www.twitch.tv/TWITCHPLAYSPOKEMON) that will lead to constructing
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from .common import InfoExtractor
|
||||
from ..compat import compat_str
|
||||
|
||||
|
||||
class VyboryMosIE(InfoExtractor):
|
||||
@@ -28,7 +29,7 @@ class VyboryMosIE(InfoExtractor):
|
||||
|
||||
channels = self._download_json(
|
||||
'http://vybory.mos.ru/account/channels?station_id=%s' % station_id,
|
||||
station_id)
|
||||
station_id, 'Downloading channels JSON')
|
||||
|
||||
formats = []
|
||||
for cam_num, (sid, hosts, name, _) in enumerate(channels, 1):
|
||||
@@ -41,14 +42,13 @@ class VyboryMosIE(InfoExtractor):
|
||||
})
|
||||
|
||||
info = self._download_json(
|
||||
'http://vybory.mos.ru/json/voting_stations/136/%s.json' % station_id,
|
||||
station_id, 'Downloading station info')
|
||||
|
||||
title = info['name']
|
||||
'http://vybory.mos.ru/json/voting_stations/%s/%s.json'
|
||||
% (compat_str(station_id)[:3], station_id),
|
||||
station_id, 'Downloading station JSON', fatal=False)
|
||||
|
||||
return {
|
||||
'id': station_id,
|
||||
'title': self._live_title(title),
|
||||
'title': self._live_title(info['name'] if info else station_id),
|
||||
'description': info.get('address'),
|
||||
'is_live': True,
|
||||
'formats': formats,
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
__version__ = '2016.09.18'
|
||||
__version__ = '2016.09.19'
|
||||
|
||||
Reference in New Issue
Block a user