{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ce10c95c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e696d5ee",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "import os\n",
    "import json\n",
    "import requests\n",
    "import urllib3\n",
    "\n",
    "from bs4 import BeautifulSoup, SoupStrainer\n",
    "from pytube import YouTube\n",
    "from pytube.exceptions import VideoUnavailable\n",
    "from vimeo_downloader import Vimeo\n",
    "import time\n",
    "\n",
    "import datetime\n",
    "import tqdm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "8a2f6481",
   "metadata": {},
   "outputs": [],
   "source": [
    "HEADERS = {\n",
    "    \"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36\"\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cab3d85d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1b8cf4f0",
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_video_links(vid_resp):\n",
    "    vimeo_links = []\n",
    "    youtube_links = []\n",
    "    if not vid_resp.ok:\n",
    "        return \n",
    "    for link in BeautifulSoup(vid_resp.text, parse_only=SoupStrainer('a')):\n",
    "        if link.has_attr('href'):\n",
    "            href = link[\"href\"]\n",
    "            if \"youtube\" in href:\n",
    "                youtube_links.append(href)\n",
    "            elif \"vimeo\" in href:\n",
    "                vimeo_links.append(href)\n",
    "    return {\"youtube\": youtube_links, \"vimeo\": vimeo_links}\n",
    "\n",
    "\n",
    "def get_more_video_links(vid_resp):\n",
    "    links = []\n",
    "    for link in BeautifulSoup(vid_resp.text, parse_only=SoupStrainer('a')):\n",
    "        if link.has_attr('href'):\n",
    "            href = link[\"href\"]\n",
    "            if href.startswith(\"?page=\"):\n",
    "                links.append(href)\n",
    "    return links"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0a899743",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "822281c2",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "6e9fbedb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DateFrom=2017-11-07&Criteria.DateTo=2020-11-20&Criteria.ParliamentNumber=52&Criteria.PageNumber=1',\n",
       " 'https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DateFrom=2017-11-07&Criteria.DateTo=2020-11-20&Criteria.ParliamentNumber=52&Criteria.PageNumber=2',\n",
       " 'https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DateFrom=2017-11-07&Criteria.DateTo=2020-11-20&Criteria.ParliamentNumber=52&Criteria.PageNumber=3',\n",
       " 'https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DateFrom=2017-11-07&Criteria.DateTo=2020-11-20&Criteria.ParliamentNumber=52&Criteria.PageNumber=4',\n",
       " 'https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DateFrom=2017-11-07&Criteria.DateTo=2020-11-20&Criteria.ParliamentNumber=52&Criteria.PageNumber=5',\n",
       " 'https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DateFrom=2017-11-07&Criteria.DateTo=2020-11-20&Criteria.ParliamentNumber=52&Criteria.PageNumber=6',\n",
       " 'https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DateFrom=2017-11-07&Criteria.DateTo=2020-11-20&Criteria.ParliamentNumber=52&Criteria.PageNumber=7',\n",
       " 'https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DateFrom=2017-11-07&Criteria.DateTo=2020-11-20&Criteria.ParliamentNumber=52&Criteria.PageNumber=8']"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "90870c12",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "found a total of 15 pages with preceedings of parliament\n"
     ]
    }
   ],
   "source": [
    "parl_53_urls = [\n",
    "    \"https://www.parliament.nz/en/pb/hansard-debates/rhr/\",\n",
    "    \"https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DefaultParliamentNumber=53&Criteria.ParliamenStartDate=2020-11-24&Criteria.PageNumber=2\",\n",
    "    \"https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DefaultParliamentNumber=53&Criteria.ParliamenStartDate=2020-11-24&Criteria.PageNumber=3\",\n",
    "    \"https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DefaultParliamentNumber=53&Criteria.ParliamenStartDate=2020-11-24&Criteria.PageNumber=4\",\n",
    "    \"https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DefaultParliamentNumber=53&Criteria.ParliamenStartDate=2020-11-24&Criteria.PageNumber=5\",\n",
    "    \"https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DefaultParliamentNumber=53&Criteria.ParliamenStartDate=2020-11-24&Criteria.PageNumber=6\",\n",
    "    \"https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DefaultParliamentNumber=53&Criteria.ParliamenStartDate=2020-11-24&Criteria.PageNumber=7\",\n",
    "    # just need to know there are only 7 pages\n",
    "]\n",
    "\n",
    "base_url_parl_52 = (\n",
    "    \"https://www.parliament.nz/en/pb/hansard-debates/rhr/\"\n",
    "    + \"?Criteria.page=HansardReports&Criteria.DateFrom=2017-11-07\"\n",
    "    + \"&Criteria.DateTo=2020-11-20&Criteria.ParliamentNumber=52\"\n",
    ")\n",
    "# just need to look up that vimeo stops after page 8\n",
    "parl_52_urls = [base_url_parl_52 + f\"&Criteria.PageNumber={i}\" for i in range(1, 9)]\n",
    "\n",
    "top_level_urls = parl_52_urls + parl_53_urls\n",
    "\n",
    "print(f\"found a total of {len(top_level_urls)} pages with preceedings of parliament\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "dbbe1145",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<>:8: SyntaxWarning: assertion is always true, perhaps remove parentheses?\n",
      "<>:8: SyntaxWarning: assertion is always true, perhaps remove parentheses?\n",
      "/tmp/ipykernel_111777/2304494439.py:8: SyntaxWarning: assertion is always true, perhaps remove parentheses?\n",
      "  assert(all(successes), \"poop\")\n"
     ]
    }
   ],
   "source": [
    "top_level_resps = []\n",
    "successes = []\n",
    "for tlu in top_level_urls:\n",
    "    time.sleep(1)\n",
    "    top_level_resp = requests.get(tlu, headers=HEADERS)\n",
    "    successes.append(top_level_resp.ok)\n",
    "    top_level_resps.append(top_level_resp)\n",
    "assert all(successes), \"poo\"\n",
    "assert len(successes) == len(top_level_urls), \"poop\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "496053bc",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d601aa81",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "0ebb44cc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " found 282 dates to process\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "['20200902',\n",
       " '20200901',\n",
       " '20200826',\n",
       " '20200825',\n",
       " '20200819',\n",
       " '20200818',\n",
       " '20200806',\n",
       " '20200804',\n",
       " '20200804',\n",
       " '20200730']"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "links = []\n",
    "for top_level_resp in top_level_resps:\n",
    "    for link in BeautifulSoup(top_level_resp.text, parse_only=SoupStrainer('a')):\n",
    "        if link.has_attr('href'):\n",
    "            href = link[\"href\"]\n",
    "            if href.startswith(\"/en/pb/hansard-debates/rhr/combined/HansD_\"):\n",
    "                links.append(href)\n",
    "\n",
    "date_strs = [l.replace(\"/en/pb/hansard-debates/rhr/combined/HansD_\", \"\") for l in links]\n",
    "date_strs = [d.split(\"_\")[0] for d in date_strs]\n",
    "print(f\" found {len(date_strs)} dates to process\")\n",
    "date_strs[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dfd828f9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "2cdb118d",
   "metadata": {},
   "outputs": [],
   "source": [
    "BASE_URL = \"https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_\"\n",
    "\n",
    "OUTPUT_DIR = \"/mnt/data-ssd-1/data/nz-parl\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1af50cb4",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "99166467",
   "metadata": {},
   "outputs": [],
   "source": [
    "# load manifest or initialize new\n",
    "#manifest = []\n",
    "with open(os.path.join(OUTPUT_DIR, \"manifest_bk.json\"), \"r\") as fi:\n",
    "    manifest = json.load(fi)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "c7b8257f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "257"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(manifest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "0d68a6cc",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c9d0aebf87da4aedb8474cabd3589d5b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/282 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "following 5 pages for 20200902\n",
      "found a total of 108 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200902_20200902\n",
      "following 3 pages for 20200901\n",
      "found a total of 56 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200901_20200901\n",
      "following 5 pages for 20200826\n",
      "found a total of 104 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200826_20200826\n",
      "following 3 pages for 20200825\n",
      "found a total of 56 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200825_20200825\n",
      "following 5 pages for 20200819\n",
      "found a total of 92 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200819_20200819\n",
      "following 5 pages for 20200818\n",
      "found a total of 88 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200818_20200818\n",
      "following 5 pages for 20200806\n",
      "found a total of 120 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200806_20200806\n",
      "following 11 pages for 20200804\n",
      "found a total of 208 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200804_20200804\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200804_20200804 already in manifest\n",
      "following 14 pages for 20200730\n",
      "found a total of 284 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200730_20200730\n",
      "following 27 pages for 20200729\n",
      "found a total of 556 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200729_20200729\n",
      "following 23 pages for 20200728\n",
      "found a total of 468 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200728_20200728\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200728_20200728 already in manifest\n",
      "following 20 pages for 20200722\n",
      "found a total of 402 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200722_20200722\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200722_20200722 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200722_20200722 already in manifest\n",
      "following 15 pages for 20200721\n",
      "found a total of 312 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200721_20200721\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200721_20200721 already in manifest\n",
      "following 19 pages for 20200702\n",
      "found a total of 388 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200702_20200702\n",
      "following 22 pages for 20200701\n",
      "found a total of 454 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200701_20200701\n",
      "following 17 pages for 20200630\n",
      "found a total of 344 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200630_20200630\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200630_20200630 already in manifest\n",
      "following 16 pages for 20200624\n",
      "found a total of 336 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200624_20200624\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200624_20200624 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200624_20200624 already in manifest\n",
      "following 14 pages for 20200623\n",
      "found a total of 298 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200623_20200623\n",
      "following 11 pages for 20200618\n",
      "found a total of 204 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200618_20200618\n",
      "following 20 pages for 20200617\n",
      "found a total of 404 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200617_20200617\n",
      "following 13 pages for 20200616\n",
      "found a total of 264 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200616_20200616\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200616_20200616 already in manifest\n",
      "following 9 pages for 20200604\n",
      "found a total of 168 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200604_20200604\n",
      "following 16 pages for 20200603\n",
      "found a total of 336 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200603_20200603\n",
      "following 13 pages for 20200602\n",
      "found a total of 252 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200602_20200602\n",
      "following 13 pages for 20200527\n",
      "found a total of 264 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200527_20200527\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200527_20200527 already in manifest\n",
      "following 11 pages for 20200526\n",
      "found a total of 232 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200526_20200526\n",
      "following 7 pages for 20200514\n",
      "found a total of 124 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200514_20200514\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200514_20200514 already in manifest\n",
      "following 17 pages for 20200513\n",
      "found a total of 350 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200513_20200513\n",
      "following 13 pages for 20200512\n",
      "found a total of 260 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200512_20200512\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200512_20200512 already in manifest\n",
      "following 11 pages for 20200507\n",
      "found a total of 240 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200507_20200507\n",
      "following 11 pages for 20200506\n",
      "found a total of 220 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200506_20200506\n",
      "following 7 pages for 20200505\n",
      "found a total of 144 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200505_20200505\n",
      "following 5 pages for 20200430\n",
      "found a total of 104 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200430_20200430\n",
      "following 5 pages for 20200429\n",
      "found a total of 116 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200429_20200429\n",
      "following 9 pages for 20200428\n",
      "found a total of 184 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200428_20200428\n",
      "following 9 pages for 20200325\n",
      "found a total of 168 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200325_20200325\n",
      "following 11 pages for 20200319\n",
      "found a total of 220 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200319_20200319\n",
      "following 17 pages for 20200318\n",
      "found a total of 344 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200318_20200318\n",
      "following 11 pages for 20200317\n",
      "found a total of 228 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200317_20200317\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200317_20200317 already in manifest\n",
      "following 16 pages for 20200312\n",
      "found a total of 330 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200312_20200312\n",
      "following 14 pages for 20200311\n",
      "found a total of 294 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200311_20200311\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200311_20200311 already in manifest\n",
      "following 11 pages for 20200310\n",
      "found a total of 240 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200310_20200310\n",
      "following 11 pages for 20200305\n",
      "found a total of 216 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200305_20200305\n",
      "following 14 pages for 20200304\n",
      "found a total of 288 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200304_20200304\n",
      "following 11 pages for 20200303\n",
      "found a total of 228 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200303_20200303\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "following 9 pages for 20200220\n",
      "found a total of 192 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200220_20200220\n",
      "following 14 pages for 20200219\n",
      "found a total of 282 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200219_20200219\n",
      "following 14 pages for 20200218\n",
      "found a total of 286 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200218_20200218\n",
      "following 11 pages for 20200213\n",
      "found a total of 208 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200213_20200213\n",
      "following 14 pages for 20200212\n",
      "found a total of 294 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200212_20200212\n",
      "following 3 pages for 20200211\n",
      "found a total of 44 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20200211_20200211\n",
      "following 9 pages for 20191218\n",
      "found a total of 180 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191218_20191218\n",
      "following 17 pages for 20191217\n",
      "found a total of 348 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191217_20191217\n",
      "following 11 pages for 20191212\n",
      "found a total of 232 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191212_20191212\n",
      "following 21 pages for 20191211\n",
      "found a total of 430 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191211_20191211\n",
      "following 17 pages for 20191210\n",
      "found a total of 354 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191210_20191210\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191210_20191210 already in manifest\n",
      "following 9 pages for 20191205\n",
      "found a total of 180 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191205_20191205\n",
      "following 17 pages for 20191204\n",
      "found a total of 354 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191204_20191204\n",
      "following 13 pages for 20191203\n",
      "found a total of 256 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191203_20191203\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191203_20191203 already in manifest\n",
      "following 9 pages for 20191121\n",
      "found a total of 192 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191121_20191121\n",
      "following 14 pages for 20191120\n",
      "found a total of 298 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191120_20191120\n",
      "following 13 pages for 20191119\n",
      "found a total of 272 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191119_20191119\n",
      "following 9 pages for 20191114\n",
      "found a total of 188 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191114_20191114\n",
      "following 14 pages for 20191113\n",
      "found a total of 296 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191113_20191113\n",
      "following 14 pages for 20191112\n",
      "found a total of 292 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191112_20191112\n",
      "following 11 pages for 20191107\n",
      "found a total of 216 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191107_20191107\n",
      "following 14 pages for 20191106\n",
      "found a total of 288 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191106_20191106\n",
      "following 14 pages for 20191105\n",
      "found a total of 284 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191105_20191105\n",
      "following 9 pages for 20191024\n",
      "found a total of 168 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191024_20191024\n",
      "following 14 pages for 20191023\n",
      "found a total of 284 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191023_20191023\n",
      "following 15 pages for 20191022\n",
      "found a total of 308 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191022_20191022\n",
      "following 11 pages for 20191017\n",
      "found a total of 212 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191017_20191017\n",
      "following 16 pages for 20191016\n",
      "found a total of 322 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191016_20191016\n",
      "following 14 pages for 20191015\n",
      "found a total of 300 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20191015_20191015\n",
      "following 9 pages for 20190926\n",
      "found a total of 176 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190926_20190926\n",
      "following 11 pages for 20190925\n",
      "found a total of 228 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190925_20190925\n",
      "following 13 pages for 20190924\n",
      "found a total of 252 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190924_20190924\n",
      "following 9 pages for 20190919\n",
      "found a total of 176 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190919_20190919\n",
      "following 14 pages for 20190918\n",
      "found a total of 296 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190918_20190918\n",
      "following 13 pages for 20190917\n",
      "found a total of 264 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190917_20190917\n",
      "following 9 pages for 20190912\n",
      "found a total of 192 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190912_20190912\n",
      "following 9 pages for 20190911\n",
      "found a total of 184 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190911_20190911\n",
      "following 14 pages for 20190910\n",
      "found a total of 298 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190910_20190910\n",
      "following 7 pages for 20190829\n",
      "found a total of 160 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190829_20190829\n",
      "following 15 pages for 20190828\n",
      "found a total of 312 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190828_20190828\n",
      "following 14 pages for 20190827\n",
      "found a total of 286 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190827_20190827\n",
      "following 11 pages for 20190822\n",
      "found a total of 204 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190822_20190822\n",
      "following 14 pages for 20190821\n",
      "found a total of 294 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190821_20190821\n",
      "following 14 pages for 20190820\n",
      "found a total of 288 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190820_20190820\n",
      "following 9 pages for 20190808\n",
      "found a total of 188 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190808_20190808\n",
      "following 15 pages for 20190807\n",
      "found a total of 304 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190807_20190807\n",
      "following 13 pages for 20190806\n",
      "found a total of 280 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190806_20190806\n",
      "following 7 pages for 20190801\n",
      "found a total of 156 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190801_20190801\n",
      "following 14 pages for 20190731\n",
      "found a total of 282 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190731_20190731\n",
      "following 13 pages for 20190730\n",
      "found a total of 264 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190730_20190730\n",
      "following 9 pages for 20190725\n",
      "found a total of 168 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190725_20190725\n",
      "following 14 pages for 20190724\n",
      "found a total of 294 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190724_20190724\n",
      "following 16 pages for 20190723\n",
      "found a total of 330 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190723_20190723\n",
      "following 11 pages for 20190627\n",
      "found a total of 228 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190627_20190627\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "following 14 pages for 20190626\n",
      "found a total of 296 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190626_20190626\n",
      "following 13 pages for 20190625\n",
      "found a total of 272 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190625_20190625\n",
      "following 7 pages for 20190620\n",
      "found a total of 160 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190620_20190620\n",
      "following 13 pages for 20190619\n",
      "found a total of 244 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190619_20190619\n",
      "following 13 pages for 20190618\n",
      "found a total of 272 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190618_20190618\n",
      "following 9 pages for 20190613\n",
      "found a total of 196 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190613_20190613\n",
      "following 14 pages for 20190612\n",
      "found a total of 290 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190612_20190612\n",
      "following 11 pages for 20190611\n",
      "found a total of 240 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190611_20190611\n",
      "following 13 pages for 20190530\n",
      "found a total of 244 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190530_20190530\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190530_20190530 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190530_20190530 already in manifest\n",
      "following 14 pages for 20190529\n",
      "found a total of 294 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190529_20190529\n",
      "following 14 pages for 20190528\n",
      "found a total of 286 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190528_20190528\n",
      "following 9 pages for 20190523\n",
      "found a total of 176 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190523_20190523\n",
      "following 14 pages for 20190522\n",
      "found a total of 290 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190522_20190522\n",
      "following 14 pages for 20190521\n",
      "found a total of 284 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190521_20190521\n",
      "following 11 pages for 20190509\n",
      "found a total of 204 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190509_20190509\n",
      "following 14 pages for 20190508\n",
      "found a total of 296 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190508_20190508\n",
      "following 15 pages for 20190507\n",
      "found a total of 302 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190507_20190507\n",
      "following 11 pages for 20190502\n",
      "found a total of 212 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190502_20190502\n",
      "following 14 pages for 20190501\n",
      "found a total of 282 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190501_20190501\n",
      "following 15 pages for 20190430\n",
      "found a total of 306 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190430_20190430\n",
      "following 9 pages for 20190411\n",
      "found a total of 188 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190411_20190411\n",
      "following 14 pages for 20190410\n",
      "found a total of 296 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190410_20190410\n",
      "following 15 pages for 20190409\n",
      "found a total of 304 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190409_20190409\n",
      "following 14 pages for 20190404\n",
      "found a total of 284 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190404_20190404\n",
      "following 15 pages for 20190403\n",
      "found a total of 302 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190403_20190403\n",
      "following 14 pages for 20190402\n",
      "found a total of 300 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190402_20190402\n",
      "following 5 pages for 20190320\n",
      "found a total of 104 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190320_20190320\n",
      "following 0 pages for 20190319\n",
      "found a total of 14 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190319_20190319\n",
      "following 9 pages for 20190314\n",
      "found a total of 188 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190314_20190314\n",
      "following 16 pages for 20190313\n",
      "found a total of 330 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190313_20190313\n",
      "following 13 pages for 20190312\n",
      "found a total of 280 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190312_20190312\n",
      "following 11 pages for 20190307\n",
      "found a total of 228 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190307_20190307\n",
      "following 11 pages for 20190306\n",
      "found a total of 228 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190306_20190306\n",
      "following 14 pages for 20190305\n",
      "found a total of 290 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190305_20190305\n",
      "following 9 pages for 20190221\n",
      "found a total of 192 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190221_20190221\n",
      "following 13 pages for 20190220\n",
      "found a total of 268 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190220_20190220\n",
      "following 13 pages for 20190219\n",
      "found a total of 276 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190219_20190219\n",
      "following 7 pages for 20190214\n",
      "found a total of 160 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190214_20190214\n",
      "following 11 pages for 20190213\n",
      "found a total of 240 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190213_20190213\n",
      "following 9 pages for 20190212\n",
      "found a total of 188 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20190212_20190212\n",
      "following 9 pages for 20181219\n",
      "found a total of 172 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20181219_20181219\n",
      "following 14 pages for 20181218\n",
      "found a total of 288 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20181218_20181218\n",
      "following 9 pages for 20181213\n",
      "found a total of 188 videos for https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20181213_20181213\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220317_20220317 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220316_20220316 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220315_20220315 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220310_20220310 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220309_20220309 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220308_20220308 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220303_20220303 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220302_20220302 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220301_20220301 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220217_20220217 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220216_20220216 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220215_20220215 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220215_20220215 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220210_20220210 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220209_20220209 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20220208_20220208 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211215_20211215 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211214_20211214 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211214_20211214 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211209_20211209 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211208_20211208 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211208_20211208 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211207_20211207 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211125_20211125 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211123_20211123 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211123_20211123 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211118_20211118 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211117_20211117 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211117_20211117 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211116_20211116 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211111_20211111 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211110_20211110 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211109_20211109 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211109_20211109 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211028_20211028 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211027_20211027 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211027_20211027 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211026_20211026 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211021_20211021 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211020_20211020 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211019_20211019 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20211019_20211019 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210930_20210930 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210929_20210929 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210929_20210929 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210928_20210928 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210923_20210923 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210922_20210922 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210921_20210921 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210909_20210909 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210908_20210908 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210907_20210907 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210902_20210902 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210901_20210901 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210831_20210831 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210812_20210812 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210811_20210811 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210810_20210810 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210805_20210805 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210804_20210804 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210803_20210803 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210708_20210708 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210707_20210707 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210707_20210707 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210706_20210706 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210701_20210701 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210630_20210630 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210629_20210629 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210624_20210624 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210623_20210623 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210622_20210622 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210610_20210610 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210609_20210609 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210608_20210608 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210603_20210603 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210602_20210602 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210601_20210601 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210520_20210520 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210520_20210520 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210519_20210519 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210518_20210518 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210513_20210513 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210512_20210512 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210511_20210511 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210506_20210506 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210505_20210505 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210504_20210504 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210415_20210415 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210414_20210414 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210413_20210413 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210408_20210408 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210407_20210407 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210406_20210406 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210325_20210325 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210324_20210324 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210323_20210323 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210323_20210323 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210318_20210318 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210317_20210317 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210316_20210316 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210311_20210311 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210310_20210310 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210309_20210309 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210225_20210225 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210223_20210223 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210223_20210223 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210218_20210218 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210217_20210217 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210216_20210216 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210211_20210211 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210210_20210210 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20210209_20210209 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20201209_20201209 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20201208_20201208 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20201208_20201208 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20201203_20201203 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20201202_20201202 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20201202_20201202 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20201201_20201201 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20201201_20201201 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20201126_20201126 already in manifest\n",
      "url https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20201125_20201125 already in manifest\n"
     ]
    }
   ],
   "source": [
    "for ds in tqdm.notebook.tqdm(date_strs):\n",
    "    url = BASE_URL + f\"{ds}_{ds}\"\n",
    "    if url in {thing[\"url\"] for thing in manifest}:\n",
    "        print(f\"url {url} already in manifest\")\n",
    "        continue\n",
    "    dir_for_date = os.path.join(OUTPUT_DIR, ds)\n",
    "    os.makedirs(dir_for_date, exist_ok=True)\n",
    "    \n",
    "    resp = requests.get(url, headers=HEADERS,)\n",
    "    if not resp.ok:\n",
    "        print(f\"failed on {ds}\")\n",
    "        continue\n",
    "    with open(os.path.join(dir_for_date, \"orig_resp.txt\"), \"w\") as fi:\n",
    "        fi.write(resp.text)    \n",
    "    \n",
    "    video_url = url + \"/tab/video\"\n",
    "    vid_resp = requests.get(video_url, headers=HEADERS)\n",
    "    \n",
    "    video_links = get_video_links(vid_resp)\n",
    "    if video_links is None:\n",
    "        continue\n",
    "    if video_links[\"youtube\"] and video_links[\"vimeo\"]:\n",
    "        print(\"found both???\")\n",
    "    \n",
    "    pages_to_follow = get_more_video_links(vid_resp)\n",
    "    print(f\"following {len(pages_to_follow)} pages for {ds}\")\n",
    "    for page in pages_to_follow:\n",
    "        time.sleep(1)\n",
    "        page_resp = requests.get(video_url + page, headers=HEADERS)\n",
    "        if page_resp.ok:\n",
    "            tmp = get_video_links(page_resp)\n",
    "            video_links[\"youtube\"].extend(tmp[\"youtube\"])\n",
    "            video_links[\"vimeo\"].extend(tmp[\"vimeo\"])\n",
    "    \n",
    "    total_links = len(video_links[\"youtube\"]) + len(video_links[\"vimeo\"])\n",
    "    print(f\"found a total of {total_links} videos for {url}\")\n",
    "    res = {\"url\": url, \"links\": video_links, \"transcript_page\": resp.text}\n",
    "    manifest.append(res)\n",
    "    with open(os.path.join(OUTPUT_DIR, \"manifest.json\"), \"w\" ) as fi:\n",
    "        json.dump(manifest, fi)\n",
    "\n",
    "    \n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "aa0f7a14",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "99c11350",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "115"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(manifest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ab343395",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "028ec880",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "99379603",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "48e96745",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "97d8cb58",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1c44d8a4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# for i, res in enumerate(manifest):\n",
    "#     # res = {\"url\": url, \"links\": video_links, \"transcript_page\": resp.text}\n",
    "#     sub_dir = (\n",
    "#         res[\"url\"]\n",
    "#         .replace(\n",
    "#             \"https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_\", \"\"\n",
    "#         )\n",
    "#         .split(\"_\")[0]\n",
    "#     )\n",
    "#     assert len(sub_dir) == 8, \"shit\"\n",
    "#     output_dir = os.path.join(OUTPUT_DIR, sub_dir)\n",
    "#     assert os.path.exists(output_dir)\n",
    "    \n",
    "#     youtube_links = res[\"links\"][\"youtube\"]\n",
    "#     vimeo_links = res[\"links\"][\"vimeo\"]\n",
    "#     youtube_links = list(set(youtube_links))\n",
    "#     vimeo_links = list(set(vimeo_links))\n",
    "    \n",
    "#     print(\n",
    "#         f\"found {len(youtube_links)} youtube and {len(vimeo_links)} vimeo links for {res['url']}\"\n",
    "#     )\n",
    "    \n",
    "#     results = []\n",
    "#     for vl in tqdm.tqdm_notebook(vimeo_links):\n",
    "#         # {\"filename\": full_fpath, \"file_type\": \"\", \"metadata\": meta, \"url\": url}\n",
    "#         tmp = download_vimeo(vl, output_dir)\n",
    "#         time.sleep(1)\n",
    "#         results.append(tmp)\n",
    "        \n",
    "# #    # UNCOMMENT FOR YOUTUBE\n",
    "# #     for yl in tqdm.tqdm_notebook(youtube_links):\n",
    "# #         # {\"filename\": full_fpath, \"file_type\": \"\", \"metadata\": meta, \"url\": url}\n",
    "# #         tmp = download_youtube(yl, output_dir); time.sleep(1)\n",
    "# #         results.append(tmp)\n",
    "\n",
    "#     with open(os.path.join(output_dir, \"results.json\"), \"w\") as fi:\n",
    "#         json.dump(results, fi)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1c77e58f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a1a511d3",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "98c07a45",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e0b6cbb8",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "185c03d3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "257"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "with open(\"/mnt/data-ssd-1/data/nz-parl/manifest.json\") as fi:\n",
    "    manifest = json.load(fi)\n",
    "dss = [m[\"url\"].split(\"_\")[-1] for m in manifest]\n",
    "len(dss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "722e14eb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "247"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dss.index(\"20190305\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "12834a91",
   "metadata": {},
   "outputs": [],
   "source": [
    "# from IPython.display import Audio\n",
    "# Audio(\"/mnt/data-ssd-1/data/nz-parl/20220317/audio/whole-audio.mp3\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8f0c5dae",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "330a8fab",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a10ba762",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f32cfbe3",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ea81a9be",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9686388e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bb09ea1a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c76684f6",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "97cc4070",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c852d35e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "eb98df77",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "id": "50b75a09",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 163,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "video_url = BASE_URL + \"/tab/video\"\n",
    "vid_resp = requests.get(video_url, headers=HEADERS)\n",
    "vid_resp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3f24ea2c",
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "video_links = get_video_links(vid_resp)\n",
    "if video_links[\"youtube\"] and video_links[\"vimeo\"]:\n",
    "    print(\"found both???\")\n",
    "pages_to_follow = get_more_video_links(vid_resp)\n",
    "for page in pages_to_follow:\n",
    "    print(page)\n",
    "    page_resp = requests.get(video_url + page, headers=HEADERS)\n",
    "    if page_resp.ok:\n",
    "        tmp = get_video_links(page_resp)\n",
    "        video_links[\"youtube\"].extend(tmp[\"youtube\"])\n",
    "        video_links[\"vimeo\"].extend(tmp[\"vimeo\"])\n",
    "video_links"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a906c7a8",
   "metadata": {},
   "outputs": [],
   "source": [
    "metadata = {\"url\": orig_url, \"video_links\": video_links}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "07fc71b9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7ca3c6f4",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3f841b9f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2f7916ca",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "id": "0f871a50",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'https://www.parliament.nz/en/pb/hansard-debates/rhr/combined/HansD_20170803_20170803/tab/video?page=5'"
      ]
     },
     "execution_count": 153,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "video_url + more_video_links[3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "id": "a4d200fe",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "fetching https://www.youtube.com/watch?v=d_tnT-16Guw\n",
      "found file /Users/mikey/data/nz-parl/20170803/d_tnT-16Guw.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=VpwS8_idNeE\n",
      "found file /Users/mikey/data/nz-parl/20170803/VpwS8_idNeE.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=VpwS8_idNeE\n",
      "found file /Users/mikey/data/nz-parl/20170803/VpwS8_idNeE.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=F9rgZ1NMp3U\n",
      "found file /Users/mikey/data/nz-parl/20170803/F9rgZ1NMp3U.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=F9rgZ1NMp3U\n",
      "found file /Users/mikey/data/nz-parl/20170803/F9rgZ1NMp3U.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=-u5F-DP1R3c\n",
      "found file /Users/mikey/data/nz-parl/20170803/-u5F-DP1R3c.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=-u5F-DP1R3c\n",
      "found file /Users/mikey/data/nz-parl/20170803/-u5F-DP1R3c.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=QriIH5RUO0Y\n",
      "found file /Users/mikey/data/nz-parl/20170803/QriIH5RUO0Y.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=QriIH5RUO0Y\n",
      "found file /Users/mikey/data/nz-parl/20170803/QriIH5RUO0Y.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=cHhtiH_m6a0\n",
      "cant't find audio for {video_key}\n",
      "fetching https://www.youtube.com/watch?v=cHhtiH_m6a0\n",
      "cant't find audio for {video_key}\n",
      "fetching https://www.youtube.com/watch?v=VRPck9qf7Io\n",
      "found file /Users/mikey/data/nz-parl/20170803/VRPck9qf7Io.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=VRPck9qf7Io\n",
      "found file /Users/mikey/data/nz-parl/20170803/VRPck9qf7Io.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=1epY_NZp8SA\n",
      "found file /Users/mikey/data/nz-parl/20170803/1epY_NZp8SA.mp4, skipping...\n",
      "fetching https://www.youtube.com/watch?v=1epY_NZp8SA\n",
      "found file /Users/mikey/data/nz-parl/20170803/1epY_NZp8SA.mp4, skipping...\n"
     ]
    }
   ],
   "source": [
    "output_dir = \"/Users/mikey/data/nz-parl/20170803/\"\n",
    "\n",
    "results = []\n",
    "\n",
    "for link in video_links[\"youtube\"]:\n",
    "    print(f\"fetching {link}\")\n",
    "    tmp = download_youtube(link, output_dir)\n",
    "    time.sleep(1)\n",
    "    results.append(tmp)\n",
    "    with open(os.path.join(output_dir, \"metadata.json\"), \"w\") as fi:\n",
    "        json.dump(results, fi)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "id": "b23ea4f7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "resp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "008e9d10",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "62b0bbc5",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5edbff1e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dbdf2ac0",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9ddc6b23",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "8170d138",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'20170802'"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "start_date = datetime.datetime.fromisoformat(\"2017-08-03\")\n",
    "one_day = datetime.timedelta(1)\n",
    "next_day = (start_date - one_day)\n",
    "next_day.strftime(\"%Y%m%d\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "db8bc614",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime.timedelta(days=1)"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fe93b52d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8a97c300",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4fcf18ee",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "resp = requests.get(BASE_URL, headers=headers,)\n",
    "resp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "0bfd417b",
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(\"/Users/mikey/data/nz-parl/20170803/response.text\", \"w\") as fi:\n",
    "    fi.write(resp.text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "52ebd5ba",
   "metadata": {},
   "outputs": [],
   "source": [
    "video_url = BASE_URL + \"/tab/video\"\n",
    "vid_resp = requests.get(video_url, headers=headers)\n",
    "vid_resp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "2f9934c9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "d946dca2",
   "metadata": {},
   "outputs": [],
   "source": [
    "video_links = []\n",
    "for link in BeautifulSoup(vid_resp.text, parse_only=SoupStrainer('a')):\n",
    "    if link.has_attr('href') and \"youtube\" in link[\"href\"]:\n",
    "        video_links.append(link['href'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "c503cc4b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(video_links)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "b3e5a9a5",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "0c529042",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "https://www.youtube.com/watch?v=7ld6ZD8q0yM\n",
      "7ld6ZD8q0yM.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=7ld6ZD8q0yM\n",
      "7ld6ZD8q0yM.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=yPGZ6YjTwgE\n",
      "yPGZ6YjTwgE.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=yPGZ6YjTwgE\n",
      "yPGZ6YjTwgE.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=d_tnT-16Guw\n",
      "d_tnT-16Guw.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=d_tnT-16Guw\n",
      "d_tnT-16Guw.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=VpwS8_idNeE\n",
      "VpwS8_idNeE.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=VpwS8_idNeE\n",
      "VpwS8_idNeE.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=F9rgZ1NMp3U\n",
      "F9rgZ1NMp3U.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=F9rgZ1NMp3U\n",
      "F9rgZ1NMp3U.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=-u5F-DP1R3c\n",
      "-u5F-DP1R3c.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=-u5F-DP1R3c\n",
      "-u5F-DP1R3c.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=QriIH5RUO0Y\n",
      "QriIH5RUO0Y.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=QriIH5RUO0Y\n",
      "QriIH5RUO0Y.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=cHhtiH_m6a0\n",
      "cant't find audio for {video_key}\n",
      "https://www.youtube.com/watch?v=cHhtiH_m6a0\n",
      "cant't find audio for {video_key}\n",
      "https://www.youtube.com/watch?v=VRPck9qf7Io\n",
      "downloading https://www.youtube.com/watch?v=VRPck9qf7Io to VRPck9qf7Io.mp4\n",
      "https://www.youtube.com/watch?v=VRPck9qf7Io\n",
      "VRPck9qf7Io.mp4 exists, skipping...\n",
      "https://www.youtube.com/watch?v=1epY_NZp8SA\n",
      "downloading https://www.youtube.com/watch?v=1epY_NZp8SA to 1epY_NZp8SA.mp4\n",
      "https://www.youtube.com/watch?v=1epY_NZp8SA\n",
      "1epY_NZp8SA.mp4 exists, skipping...\n"
     ]
    }
   ],
   "source": [
    "for link in video_links:\n",
    "    print(link)\n",
    "    video_key = link.replace(\"https://www.youtube.com/watch?v=\", \"\")\n",
    "    fname = video_key + \".mp4\"\n",
    "    output_path = \"/Users/mikey/data/nz-parl/20170803\"\n",
    "    if os.path.exists(os.path.join(output_path, fname)):\n",
    "        print(f\"{fname} exists, skipping...\")\n",
    "        continue\n",
    "    yt = YouTube(link)\n",
    "    try:\n",
    "        s = yt.streams.filter(type=\"audio\").first()\n",
    "    except VideoUnavailable:\n",
    "        print(\"cant't find audio for {video_key}\")\n",
    "        try:\n",
    "            s = yt.streams.first()\n",
    "        except:\n",
    "            continue\n",
    "    metadata[video_key] = yt.description\n",
    "    print(f\"downloading {link} to {fname}\")\n",
    "    s.download(output_path=output_path, filename=fname)\n",
    "    with open(\"/Users/mikey/data/nz-parl/20170803/metadata.json\", \"w\") as fi:\n",
    "        json.dump(metadata, fi)\n",
    "    time.sleep(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "69dfe246",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "fe77196a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Stream: itag=\"17\" mime_type=\"video/3gpp\" res=\"144p\" fps=\"8fps\" vcodec=\"mp4v.20.3\" acodec=\"mp4a.40.2\" progressive=\"True\" type=\"video\">"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s.download()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "f10a4723",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Stream: itag=\"139\" mime_type=\"audio/mp4\" abr=\"48kbps\" acodec=\"mp4a.40.5\" progressive=\"False\" type=\"audio\">"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "id": "b983a6bb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[]"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "72b6a5e4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'2017-08-03 - Anti-Money Laundering and Countering Financing of Terrorism Amendment Bill- Third Reading - Video 12\\n\\nJono Naylor,Trevor Mallard,Matt Doocey\\n\\nHelp us caption & translate this video!\\n\\nhttp://amara.org/v/9FM2/'"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "yt.description"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "10d3aa1c",
   "metadata": {},
   "outputs": [],
   "source": [
    "metadata = {}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "b0305ee3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/Users/mikey/data/nz-parl/20170803/7ld6ZD8q0yM.mp4'"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "fda7b6ea",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "3d7940d8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DefaultParliamentNumber=53&Criteria.ParliamenStartDate=2020-11-24Criteria.PageNumber=10'"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "base_url = \"https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports\"\n",
    "params = [\n",
    "    \"Criteria.DefaultParliamentNumber=53\",\n",
    "    \"Criteria.ParliamenStartDate=2020-11-24\"\n",
    "    \"Criteria.PageNumber=10\",\n",
    "]\n",
    "base_url + \"&\" + \"&\".join(params)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "a6950578",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DefaultParliamentNumber=53&Criteria.ParliamenStartDate=2020-11-24&Criteria.PageNumber=6'"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"https://www.parliament.nz/en/pb/hansard-debates/rhr/?Criteria.page=HansardReports&Criteria.DefaultParliamentNumber=53&Criteria.ParliamenStartDate=2020-11-24&Criteria.PageNumber=6\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f9b04478",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
