~heckyel/livie

be65320ce695a59d427e56f261c4af2c3170a65f — Jesús 3 years ago 5e8e05a
Change API
3 files changed, 19 insertions(+), 29 deletions(-)

M .gitignore
M README.md
M livie.py
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: