mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2025-12-10 08:02:43 +01:00
Compare commits
4 Commits
2014.08.21
...
2014.08.21
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af40ac054a | ||
|
|
a36819731b | ||
|
|
181c8655c7 | ||
|
|
3b95347bb6 |
@@ -17,6 +17,14 @@ If you do not have curl, you can alternatively use a recent wget:
|
||||
|
||||
Windows users can [download a .exe file](https://yt-dl.org/latest/youtube-dl.exe) and place it in their home directory or any other location on their [PATH](http://en.wikipedia.org/wiki/PATH_%28variable%29).
|
||||
|
||||
OS X users can install **youtube-dl** with [Homebrew](http://brew.sh/).
|
||||
|
||||
brew install youtube-dl
|
||||
|
||||
You can also use pip:
|
||||
|
||||
sudo pip install youtube-dl
|
||||
|
||||
Alternatively, refer to the developer instructions below for how to check out and work with the git repository. For further options, including PGP signatures, see https://rg3.github.io/youtube-dl/download.html .
|
||||
|
||||
# DESCRIPTION
|
||||
|
||||
@@ -463,8 +463,9 @@ class InfoExtractor(object):
|
||||
return self._og_search_property('title', html, **kargs)
|
||||
|
||||
def _og_search_video_url(self, html, name='video url', secure=True, **kargs):
|
||||
regexes = self._og_regexes('video')
|
||||
if secure: regexes = self._og_regexes('video:secure_url') + regexes
|
||||
regexes = self._og_regexes('video') + self._og_regexes('video:url')
|
||||
if secure:
|
||||
regexes = self._og_regexes('video:secure_url') + regexes
|
||||
return self._html_search_regex(regexes, html, name, **kargs)
|
||||
|
||||
def _og_search_url(self, html, **kargs):
|
||||
|
||||
@@ -36,7 +36,7 @@ class EscapistIE(InfoExtractor):
|
||||
r'<meta name="description" content="([^"]*)"',
|
||||
webpage, 'description', fatal=False)
|
||||
|
||||
playerUrl = self._og_search_video_url(webpage, name=u'player URL')
|
||||
playerUrl = self._og_search_video_url(webpage, name='player URL')
|
||||
|
||||
title = self._html_search_regex(
|
||||
r'<meta name="title" content="([^"]*)"',
|
||||
|
||||
@@ -24,6 +24,7 @@ import socket
|
||||
import struct
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import traceback
|
||||
import xml.etree.ElementTree
|
||||
import zlib
|
||||
@@ -228,18 +229,36 @@ else:
|
||||
assert type(s) == type(u'')
|
||||
print(s)
|
||||
|
||||
# In Python 2.x, json.dump expects a bytestream.
|
||||
# In Python 3.x, it writes to a character stream
|
||||
if sys.version_info < (3,0):
|
||||
def write_json_file(obj, fn):
|
||||
with open(fn, 'wb') as f:
|
||||
json.dump(obj, f)
|
||||
else:
|
||||
def write_json_file(obj, fn):
|
||||
with open(fn, 'w', encoding='utf-8') as f:
|
||||
json.dump(obj, f)
|
||||
|
||||
if sys.version_info >= (2,7):
|
||||
def write_json_file(obj, fn):
|
||||
""" Encode obj as JSON and write it to fn, atomically """
|
||||
|
||||
# In Python 2.x, json.dump expects a bytestream.
|
||||
# In Python 3.x, it writes to a character stream
|
||||
if sys.version_info < (3, 0):
|
||||
mode = 'wb'
|
||||
encoding = None
|
||||
else:
|
||||
mode = 'w'
|
||||
encoding = 'utf-8'
|
||||
tf = tempfile.NamedTemporaryFile(
|
||||
suffix='.tmp', prefix=os.path.basename(fn) + '.',
|
||||
dir=os.path.dirname(fn),
|
||||
delete=False)
|
||||
|
||||
try:
|
||||
with tf:
|
||||
json.dump(obj, tf)
|
||||
os.rename(tf.name, fn)
|
||||
except:
|
||||
try:
|
||||
os.remove(tf.name)
|
||||
except OSError:
|
||||
pass
|
||||
raise
|
||||
|
||||
|
||||
if sys.version_info >= (2, 7):
|
||||
def find_xpath_attr(node, xpath, key, val):
|
||||
""" Find the xpath xpath[@key=val] """
|
||||
assert re.match(r'^[a-zA-Z-]+$', key)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
|
||||
__version__ = '2014.08.21.1'
|
||||
__version__ = '2014.08.21.2'
|
||||
|
||||
Reference in New Issue
Block a user