M .gitignore => .gitignore +2 -1
@@ 1,1 1,2 @@
-*.xml>
\ No newline at end of file
+*.xml
+*.json
M README.md => README.md +2 -4
@@ 10,12 10,10 @@ Livie allows the user to search youtube.com and play the video from `mpv`.
- `python >= 3.5`
- `python-requests`
-- `python-beautifulsoup4`
-- `python-lxml`
-- `hypervideo` or `youtube-dl`
+- `hypervideo`
- `mpv`
- `sudo pacman -S python mpv python-requests python-beautifulsoup4 python-lxml hypervideo`
+ `sudo pacman -S python mpv python-requests hypervideo`
## Installation
M livie.py => livie.py +15 -24
@@ 1,39 1,30 @@
"""This module does render video"""
import sys
+import json
import requests
-from bs4 import BeautifulSoup
-URL = 'https://yt.conocimientoslibres.ga/youtube.com/'
+URL = 'https://youtube-scrape.herokuapp.com'
INPUT = sys.argv[1]
-FILTER = '&type=1'
-SEARCH = '%ssearch?query=%s%s' % (URL, INPUT, FILTER)
+SEARCH = '%s/api/search?q=%s' % (URL, INPUT)
REQUEST = requests.get(SEARCH)
-SOUP = BeautifulSoup(REQUEST.content, 'lxml', from_encoding=REQUEST.encoding)
-# skip line loop
FIRST = True
-articles = SOUP.find_all('article', class_="item-box")
+data = json.loads(REQUEST.content.decode('utf-8'))
+items = data['results']
+# with open('output.json', 'w') as json_file:
+# json.dump(items, json_file)
-def check(label):
- if label is None:
- data = 'Unknown'
- else:
- data = label.text
- return data
-
-
-for article in articles:
+for item in items:
try:
- title = check(article.h4)
- link = article.a['href'].replace('/', '', 1)
- author = check(article.address)
- time = check(article.p)
- uploaded = check(article.span)
- views = check(article.find('div', class_="views"))
-
- except TypeError:
+ title = item['video']['title']
+ link = item['video']['url']
+ author = item['uploader']['username']
+ time = item['video']['duration']
+ uploaded = item['video']['upload_date']
+ views = item['video']['views']
+ except KeyError:
continue
if FIRST: