make downloader pure
This commit is contained in:
parent
494822935b
commit
8416bd0702
@ -13,26 +13,26 @@
|
|||||||
# youtube_dl = import_from_pip('youtube_dl')
|
# youtube_dl = import_from_pip('youtube_dl')
|
||||||
|
|
||||||
import tempfile
|
import tempfile
|
||||||
import pip
|
|
||||||
import sys
|
import sys
|
||||||
import youtube_dl
|
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
dirpath = tempfile.mkdtemp()
|
youtube_dl = None
|
||||||
sys.path.append(dirpath)
|
|
||||||
|
|
||||||
BUFFER_SIZE = 1024
|
|
||||||
|
|
||||||
def execute(cmd):
|
def execute(cmd):
|
||||||
popen = subprocess.Popen(cmd, stdout=subprocess.PIPE)
|
popen = subprocess.Popen(cmd, stdout=subprocess.PIPE)
|
||||||
# monitor the stdout
|
# monitor the stdout
|
||||||
|
BUFFER_SIZE = 1024
|
||||||
for chunk in iter(lambda: popen.stdout.read(BUFFER_SIZE), b''):
|
for chunk in iter(lambda: popen.stdout.read(BUFFER_SIZE), b''):
|
||||||
yield chunk
|
yield chunk
|
||||||
popen.stdout.close()
|
popen.stdout.close()
|
||||||
popen.wait()
|
popen.wait()
|
||||||
|
|
||||||
def updateYoutubeDL():
|
def updateYoutubeDL():
|
||||||
pip.main(['install', '--target=' + dirpath, '--upgrade', package])
|
pip.main(['install', '--target=' + dirpath, '--upgrade', 'youtube_dl'])
|
||||||
|
|
||||||
|
def importYoutubeDL():
|
||||||
|
global youtube_dl
|
||||||
|
youtube_dl = __import__('youtube_dl')
|
||||||
|
|
||||||
def download(url):
|
def download(url):
|
||||||
# update youtube-dl
|
# update youtube-dl
|
||||||
@ -40,7 +40,7 @@ def download(url):
|
|||||||
#updateYoutubeDL()
|
#updateYoutubeDL()
|
||||||
|
|
||||||
# start downloader so that it's stdout (with fragments) may be captured
|
# start downloader so that it's stdout (with fragments) may be captured
|
||||||
for s in execute(["python3","downloader.py",url]):
|
for s in execute([sys.executable,"downloader.py",dirpath,url]):
|
||||||
print(s)
|
print(s)
|
||||||
|
|
||||||
def runYoutubeDL(url):
|
def runYoutubeDL(url):
|
||||||
@ -53,4 +53,12 @@ def runYoutubeDL(url):
|
|||||||
ydl.download([url])
|
ydl.download([url])
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
runYoutubeDL(sys.argv[1])
|
dirpath = sys.argv[1]
|
||||||
|
sys.path.append(dirpath)
|
||||||
|
importYoutubeDL()
|
||||||
|
runYoutubeDL(sys.argv[2])
|
||||||
|
else:
|
||||||
|
import pip
|
||||||
|
dirpath = tempfile.mkdtemp()
|
||||||
|
sys.path.append(dirpath)
|
||||||
|
updateYoutubeDL()
|
3
radio.py
3
radio.py
@ -1,8 +1,9 @@
|
|||||||
|
import pip
|
||||||
import downloader
|
import downloader
|
||||||
|
|
||||||
def run():
|
def run():
|
||||||
downloader.download('https://www.youtube.com/watch?v=BaW_jenozKc')
|
downloader.download('https://www.youtube.com/watch?v=BaW_jenozKc')
|
||||||
downloader.download('https://www.youtube.com/watch?v=kgBcg4uBd9Q')
|
# downloader.download('https://www.youtube.com/watch?v=kgBcg4uBd9Q')
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
run()
|
run()
|
4
setup.py
4
setup.py
@ -1,9 +1,11 @@
|
|||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
|
|
||||||
|
requires = ["pip"]
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='radio',
|
name='radio',
|
||||||
version='0.1',
|
version='0.1',
|
||||||
py_modules=['radio'],
|
py_modules=['radio','downloader'],
|
||||||
entry_points={
|
entry_points={
|
||||||
'console_scripts': ['radio = radio:run']
|
'console_scripts': ['radio = radio:run']
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user