From 84d98e2b7aa9da4ffcbe613d0ebbea5cf5e9eebb Mon Sep 17 00:00:00 2001 From: Richard Mwewa <74001397+rly0nheart@users.noreply.github.com> Date: Sat, 1 Oct 2022 12:53:34 +0200 Subject: [PATCH 1/5] Create .nomedia --- downloads/.nomedia | 1 + 1 file changed, 1 insertion(+) create mode 100644 downloads/.nomedia diff --git a/downloads/.nomedia b/downloads/.nomedia new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/downloads/.nomedia @@ -0,0 +1 @@ + From 3bd94e9cc010a98b747c391bd1ccb14927cb1c00 Mon Sep 17 00:00:00 2001 From: Richard Mwewa <74001397+rly0nheart@users.noreply.github.com> Date: Sat, 1 Oct 2022 12:54:29 +0200 Subject: [PATCH 2/5] Delete .idea directory --- .../inspectionProfiles/profiles_settings.xml | 6 --- .idea/workspace.xml | 39 ------------------- 2 files changed, 45 deletions(-) delete mode 100644 .idea/inspectionProfiles/profiles_settings.xml delete mode 100644 .idea/workspace.xml diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2d..0000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml deleted file mode 100644 index d133804..0000000 --- a/.idea/workspace.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - 1664618714345 - - - - \ No newline at end of file From a390bd6bd830038398e09652fbc8846720ffc2cc Mon Sep 17 00:00:00 2001 From: Richard Mwewa <74001397+rly0nheart@users.noreply.github.com> Date: Sat, 1 Oct 2022 12:55:29 +0200 Subject: [PATCH 3/5] Create python-app.yml --- .github/workflows/python-app.yml | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/workflows/python-app.yml diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml new file mode 100644 index 0000000..90422fd --- /dev/null +++ b/.github/workflows/python-app.yml @@ -0,0 +1,39 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Python application + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +permissions: + contents: read + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 pytest + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + pytest test_download_video.py From add75f2a2e020ce259b7f75e0c0e25149e803c2d Mon Sep 17 00:00:00 2001 From: Richard Mwewa <74001397+rly0nheart@users.noreply.github.com> Date: Sat, 1 Oct 2022 12:56:36 +0200 Subject: [PATCH 4/5] Create requirements.txt --- requirements.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..f721993 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +tqdm +selenium +requests From d734cba88c50a0ef8519f63791ce43b451392886 Mon Sep 17 00:00:00 2001 From: Richard Mwewa <74001397+rly0nheart@users.noreply.github.com> Date: Mon, 3 Oct 2022 16:11:06 +0200 Subject: [PATCH 5/5] Update downloader.py --- downloader.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/downloader.py b/downloader.py index 6475c74..dc10aca 100644 --- a/downloader.py +++ b/downloader.py @@ -6,6 +6,8 @@ from tqdm import tqdm from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions option = webdriver.FirefoxOptions() @@ -63,7 +65,7 @@ def download_video(url, output): Audio: "/html/body/div[2]/div/div/div[1]/div/div[2]/div/div[3]/p[3]/a" """ - download_btn = driver.find_element(By.XPATH, '/html/body/div[2]/div/div/div[1]/div/div[2]/div/div[3]/p[1]/a') # Find the download button (this clicks the first button which returns a video in hd) + download_btn = WebDriverWait(driver, 20).until(expected_conditions.presence_of_element_located((By.XPATH, '/html/body/div[2]/div/div/div[1]/div/div[2]/div/div[3]/p[1]/a'))) # Find the download button (this clicks the first button which returns a video in hd) download_url = download_btn.get_attribute('href') with requests.get(download_url, stream=True) as response: @@ -94,4 +96,5 @@ if __name__ == "__main__": print('Process interrupted with Ctrl+C.') except Exception as e: - print('An error occured:', e) \ No newline at end of file + print('An error occured:', e) +