├── .gitignore ├── .vscode └── launch.json ├── README.md ├── cookies └── curator1_cookie │ ├── Default │ ├── Cache │ │ ├── 0d6e3519157d7f53_0 │ │ ├── 40b9644e98f55223_0 │ │ ├── 498a33911de5b882_0 │ │ ├── 4c17b790d20016b4_0 │ │ ├── 791566540311c9a2_0 │ │ ├── 89f2f4ebb3b6c63e_0 │ │ ├── bef265a4cd94c183_0 │ │ ├── d64ff8adaaf4d172_0 │ │ ├── d84eb0de894caad3_0 │ │ └── index-dir │ │ │ └── the-real-index │ ├── Code Cache │ │ └── js │ │ │ ├── 69fec9cec13e79ec_0 │ │ │ ├── 7a4fb86f384ae759_0 │ │ │ ├── c31acd96eb7b1773_0 │ │ │ ├── d46163dab094035f_0 │ │ │ ├── e62023d65c5c5d29_0 │ │ │ ├── f167b85721b3a1cc_0 │ │ │ └── index-dir │ │ │ └── the-real-index │ ├── History Provider Cache │ ├── Network Persistent State │ ├── Preferences │ └── TransportSecurity │ ├── Local State │ └── chrome_shutdown_ms.txt ├── images ├── 2020-07-22prepper.jpg └── theirtube_backend.gif ├── package-lock.json ├── package.json └── src ├── index.js ├── theirtube.js ├── video_data_scraped.json └── video_data_template.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Don't track content of these folders 2 | node_modules/ 3 | 4 | # Don't track files with these names 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "node", 9 | "request": "launch", 10 | "name": "Launch Program", 11 | "skipFiles": [ 12 | "/**" 13 | ], 14 | "program": "${workspaceFolder}/webserver.js" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # TheirTube Scraper 4 | 5 | Theirtube is a Youtube filter bubble simulator that provides a look into how videos are recommended on other people's YouTube. 🔗[their.tube](https://www.their.tube). 6 | 7 | TheirTube scraper allows to retrieve your own Youtube recommendation results on your local environment 8 | 9 | ![Scraper Image](./images/theirtube_backend.gif) 10 | 11 | 12 | ## Installation 13 | 14 | The main dependancy of theirtube is [puppeteer](https://github.com/puppeteer/puppeteer) ver 2.1.1, [node-schedule](https://www.npmjs.com/package/node-schedule) ver 1.3.2 running on node.js ver 12 15 | 16 | 17 | ```javascript 18 | git clone https://github.com/kihapper/TheirTube.git 19 | 20 | cd TheirTube 21 | 22 | npm install 23 | 24 | npm run scrape 25 | ``` 26 | When activating for the first time, it will require you to login to your Youtube account on puppeteer. When you login, your login-cookie information will be saved under __/cookies/theirtube_cookie__ , allowing you to access to your Youtube accout on the next run scrape command. When you want to switch between accounts, swap this cookie to login to different channels. 27 | 28 | 29 | 30 | 31 | ## Usage 32 | 33 | By default you can run the scraper everyday at a certain time. To specify when the program will run,you can set up a timer for a scheduled run. For instance, the below code will activate everyday on __17:31__ your local time. 34 | 35 | ```javascript 36 | npm run scrape -- --scrapeHour=17 --scrapeMinute=31 37 | ``` 38 | ### Data Structure 39 | 40 | The youtube top page will be saved in the following JSON format. You can specify where you want to save your files in theirtube.js 41 | 42 | 43 | 44 | ```json 45 | { 46 | "title": "Video Title", 47 | "url": "https://www.youtube.com/VIDEO-URL", 48 | "channel": "Channel Name", 49 | "channel_url": "https://www.youtube.com/CHANNEL-URL", 50 | "channel_icon": "https://www.youtube.com/CHANNEL-ICON-URL.jpg", 51 | "thumbnail": "https://www.youtube.com/THUMBNAIL-URL", 52 | "viewnum": "XX views", 53 | "date": "XX days ago" 54 | } 55 | ``` 56 | 57 | 58 | 59 | ## Screenshot 60 | 61 | Everytime it gets the data, it will also get a screenshot of the Youtube top-page. You can see them in the __/screenshot/images__ folder. 62 | 63 | ```javascript 64 | . 65 | ├── screenshot 66 | │ └── 2020-07-22 67 | │ ├── 2020-07-22persona1.jpg 68 | │ ├── 2020-07-22persona2.jpg 69 | │ ├── 2020-07-22persona3.jpg 70 | 71 | ``` 72 | ![Scraper Image](./images/2020-07-22prepper.jpg) 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Cache/0d6e3519157d7f53_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Cache/0d6e3519157d7f53_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Cache/40b9644e98f55223_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Cache/40b9644e98f55223_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Cache/498a33911de5b882_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Cache/498a33911de5b882_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Cache/4c17b790d20016b4_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Cache/4c17b790d20016b4_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Cache/791566540311c9a2_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Cache/791566540311c9a2_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Cache/89f2f4ebb3b6c63e_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Cache/89f2f4ebb3b6c63e_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Cache/bef265a4cd94c183_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Cache/bef265a4cd94c183_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Cache/d64ff8adaaf4d172_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Cache/d64ff8adaaf4d172_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Cache/d84eb0de894caad3_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Cache/d84eb0de894caad3_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Cache/index-dir/the-real-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Cache/index-dir/the-real-index -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Code Cache/js/69fec9cec13e79ec_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Code Cache/js/69fec9cec13e79ec_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Code Cache/js/7a4fb86f384ae759_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Code Cache/js/7a4fb86f384ae759_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Code Cache/js/c31acd96eb7b1773_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Code Cache/js/c31acd96eb7b1773_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Code Cache/js/d46163dab094035f_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Code Cache/js/d46163dab094035f_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Code Cache/js/e62023d65c5c5d29_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Code Cache/js/e62023d65c5c5d29_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Code Cache/js/f167b85721b3a1cc_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Code Cache/js/f167b85721b3a1cc_0 -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Code Cache/js/index-dir/the-real-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/Code Cache/js/index-dir/the-real-index -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/History Provider Cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/cookies/curator1_cookie/Default/History Provider Cache -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Network Persistent State: -------------------------------------------------------------------------------- 1 | {"net":{"http_server_properties":{"servers":[{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":25397},"server":"https://lh6.googleusercontent.com"},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242236461329617","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242236461329618","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":18389},"server":"https://www.gstatic.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242497523462428","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242497523462430","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":21296},"server":"https://android.clients.google.com","supports_spdy":true},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":14380},"server":"https://r5---sn-aigzrn7k.googlevideo.com"},{"alternative_service":[{"advertised_versions":[46],"expiration":"13241981285163105","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13241981285163107","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":13262},"server":"https://r6---sn-aigl6n7z.googlevideo.com"},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240772650731046","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240772650731048","port":443,"protocol_str":"quic"}],"isolation":["file:///","file:///"],"network_stats":{"srtt":19270},"server":"https://fonts.gstatic.com","supports_spdy":true},{"isolation":[],"server":"https://unpkg.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240772650352944","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240772650352947","port":443,"protocol_str":"quic"}],"isolation":["file:///","file:///"],"server":"https://fonts.googleapis.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240772653293882","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240772653293884","port":443,"protocol_str":"quic"}],"isolation":["file:///","file:///"],"network_stats":{"srtt":74885},"server":"https://storage.googleapis.com","supports_spdy":true},{"isolation":["file:///","file:///"],"server":"https://unpkg.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240782902608000","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240782902608002","port":443,"protocol_str":"quic"}],"isolation":["https://www.google.com/","https://www.google.com/"],"network_stats":{"srtt":18555},"server":"https://www.google.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240782902056486","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240782902056488","port":443,"protocol_str":"quic"}],"isolation":["https://www.google.com/","https://www.google.com/"],"network_stats":{"srtt":22342},"server":"https://www.gstatic.com","supports_spdy":true},{"isolation":["https://github.com/","https://github.com/"],"server":"https://customer-stories-feed.github.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240782902523196","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240782902523197","port":443,"protocol_str":"quic"}],"isolation":["https://www.google.com/","https://www.google.com/"],"server":"https://clients1.google.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240782902498528","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240782902498530","port":443,"protocol_str":"quic"}],"isolation":["https://www.google.com/","https://www.google.com/"],"server":"https://apis.google.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240782902271549","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240782902271551","port":443,"protocol_str":"quic"}],"isolation":["https://www.google.com/","https://www.google.com/"],"server":"https://encrypted-tbn0.gstatic.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240782902225440","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240782902225443","port":443,"protocol_str":"quic"}],"isolation":["https://www.google.com/","https://www.google.com/"],"server":"https://lh3.googleusercontent.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240702466852466","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240702466852468","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":24275},"server":"https://www.youtube.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13239978458797284","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13239978458797287","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":18330},"server":"https://beacons3.gvt2.com","supports_spdy":true},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":18237},"server":"https://r4---sn-aigl6ney.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":10500},"server":"https://r3---sn-aigl6nek.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":81114},"server":"https://r4---sn-ab5l6nsy.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":13445},"server":"https://r6---sn-aigzrner.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":117874},"server":"https://r4---sn-q4flrnl7.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":13102},"server":"https://r3---sn-aigzrn7s.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":9908},"server":"https://r2---sn-8vq54vox03-aige.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":23595},"server":"https://r5---sn-q0c7rn76.googlevideo.com"},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240095725799776","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240095725799778","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":21059},"server":"https://beacons4.gvt2.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240096178362575","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240096178362578","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":20812},"server":"https://beacons.gvt2.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240096298345149","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240096298345152","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":19940},"server":"https://beacons.gcp.gvt2.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240096358364807","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240096358364810","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":19643},"server":"https://clients2.google.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13240096418507388","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13240096418507392","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":16913},"server":"https://beacons2.gvt2.com","supports_spdy":true},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":11161},"server":"https://r4---sn-aigzrn7e.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":9618},"server":"https://r3---sn-8vq54vox03-aige.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":12408},"server":"https://r2---sn-aigl6n7z.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":10549},"server":"https://r1---sn-8vq54vox03-aige.googlevideo.com"},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":18073},"server":"https://redirector.googlevideo.com"},{"alternative_service":[{"advertised_versions":[46],"expiration":"13241981405209504","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13241981405209507","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":23193},"server":"https://securepubads.g.doubleclick.net","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13241981405513108","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13241981405513112","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":30044},"server":"https://ad.doubleclick.net","supports_spdy":true},{"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":10891},"server":"https://r6---sn-aigzrney.googlevideo.com"},{"alternative_service":[{"advertised_versions":[46],"expiration":"13241981406696186","host":"googleads.g.doubleclick.net","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13241981406696189","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13241981406696192","host":"googleads.g.doubleclick.net","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13241981406696194","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"server":"https://pagead2.googlesyndication.com"},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242499384659428","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242499384659431","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":851994},"server":"https://clients1.google.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13239931206893149","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13239931206893152","port":443,"protocol_str":"quic"}],"isolation":["https://accounts.google.com/","https://accounts.google.com/"],"server":"https://accounts.google.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242500824492480","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242500824492483","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":24155},"server":"https://lh3.googleusercontent.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13241657939382405","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13241657939382409","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":19507},"server":"https://s.ytimg.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242497523647162","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242497523647163","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":22715},"server":"https://static.doubleclick.net","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242072122697181","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242072122697183","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":150489},"server":"https://fonts.googleapis.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13241657460484659","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13241657460484662","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":146266},"server":"https://fonts.gstatic.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242505350036527","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242505350036530","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":29417},"server":"https://i.ytimg.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242505349535011","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242505349535013","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":106237},"server":"https://www.google.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242505349533870","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242505349533874","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":106483},"server":"https://www.google.co.uk","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242505371624343","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242505371624347","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":75103},"server":"https://yt3.ggpht.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242507149585479","host":"googleads.g.doubleclick.net","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242507149585482","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242507149585485","host":"googleads.g.doubleclick.net","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242507149585487","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":22312},"server":"https://googleads.g.doubleclick.net","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508401459092","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508401459094","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","https://www.youtube.com/"],"server":"https://static.doubleclick.net","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508401459642","host":"googleads.g.doubleclick.net","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508401459643","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508401459647","host":"googleads.g.doubleclick.net","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508401459649","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","https://www.youtube.com/"],"server":"https://googleads.g.doubleclick.net","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508401529682","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508401529685","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","https://www.youtube.com/"],"server":"https://yt3.ggpht.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508401544175","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508401544178","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","https://www.youtube.com/"],"server":"https://fonts.gstatic.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508402112347","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508402112349","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","https://www.youtube.com/"],"server":"https://www.google.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508402600886","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508402600890","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","https://www.youtube.com/"],"server":"https://i.ytimg.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508395066009","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508395066012","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":46434},"server":"https://lh5.googleusercontent.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508395603321","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508395603324","port":443,"protocol_str":"quic"}],"isolation":["https://www.youtube.com/","https://www.youtube.com/"],"network_stats":{"srtt":47911},"server":"https://www.youtube.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508395068009","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508395068011","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":42953},"server":"https://encrypted-tbn0.gstatic.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508421787703","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508421787706","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","https://www.youtube.com/"],"network_stats":{"srtt":13202},"server":"https://r2---sn-aigzrn7e.googlevideo.com"},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508420916767","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508420916770","port":443,"protocol_str":"quic"}],"isolation":["https://github.com/","https://github.com/"],"network_stats":{"srtt":21765},"server":"https://clients1.google.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508439656976","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508439656978","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","https://www.youtube.com/"],"network_stats":{"srtt":14239},"server":"https://www.youtube.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508444635272","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508444635275","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","http://www.their.tube/"],"network_stats":{"srtt":14876},"server":"https://i.ytimg.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508444612807","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508444612808","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","http://www.their.tube/"],"network_stats":{"srtt":25856},"server":"https://yt3.ggpht.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508607652955","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508607652958","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":19967},"server":"https://www.google.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242509693392013","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242509693392016","port":443,"protocol_str":"quic"}],"isolation":[],"network_stats":{"srtt":22352},"server":"https://clients4.google.com","supports_spdy":true},{"isolation":["https://github.com/","https://github.com/"],"server":"https://github.githubassets.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242509800906739","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242509800906741","port":443,"protocol_str":"quic"}],"isolation":["https://github.com/","https://github.com/"],"network_stats":{"srtt":20227},"server":"https://www.google-analytics.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242511649400790","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242511649400793","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","http://www.their.tube/"],"network_stats":{"srtt":23297},"server":"https://fonts.googleapis.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242511649452872","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242511649452875","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","http://www.their.tube/"],"network_stats":{"srtt":35088},"server":"https://www.googletagmanager.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242508444640421","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242508444640425","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","http://www.their.tube/"],"network_stats":{"srtt":38250},"server":"https://fonts.gstatic.com","supports_spdy":true},{"alternative_service":[{"advertised_versions":[46],"expiration":"13242511649559947","port":443,"protocol_str":"quic"},{"advertised_versions":[46],"expiration":"13242511649559949","port":443,"protocol_str":"quic"}],"isolation":["http://www.their.tube/","http://www.their.tube/"],"network_stats":{"srtt":29843},"server":"https://www.google-analytics.com","supports_spdy":true}],"supports_quic":{"address":"192.168.1.9","used_quic":true},"version":5},"network_qualities":{"CAISABiAgICA+P////8B":"3G","CAYSABiAgICA+P////8B":"Offline"}}} -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/Preferences: -------------------------------------------------------------------------------- 1 | {"account_id_migration_state":2,"account_tracker_service_last_update":"13239905521203244","apps":{"shortcuts_version":6},"autocomplete":{"retention_policy_last_version":80},"browser":{"has_seen_welcome_page":false,"window_placement":{"bottom":1078,"left":1987,"maximized":false,"right":3567,"top":23,"work_area_bottom":1120,"work_area_left":1920,"work_area_right":3712,"work_area_top":23}},"countryid_at_install":20044,"data_reduction":{"daily_original_length":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","792554","1123198","416229","143377","0","0","0","0","0","0","0","0","2015159","46409","0","0","0","0","0","0","0","0","134751","208997","0","0","0","0","0","84263","35142","0","127034"],"daily_received_length":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","792554","1123198","416229","143377","0","0","0","0","0","0","0","0","2015159","46409","0","0","0","0","0","0","0","0","134751","208997","0","0","0","0","0","84263","35142","0","127034"],"last_update_date":"13239846000000000","last_week_services_downstream_background_kb":{},"last_week_services_downstream_foreground_kb":{"109200878":21,"112189210":19,"119416099":0,"130931413":14,"18300705":2,"35565745":5,"41424546":26,"47815025":2,"54845618":216,"61656965":0,"65957842":3,"88863520":0},"last_week_user_traffic_contenttype_downstream_kb":{},"network_properties":{},"this_week_number":2637,"this_week_services_downstream_background_kb":{},"this_week_services_downstream_foreground_kb":{"109200878":10,"112189210":32,"119416099":0,"130931413":8,"18300705":0,"35565745":13,"41424546":34,"47815025":3,"54845618":234,"61656965":0,"65957842":3,"71251498":2,"88863520":0},"this_week_user_traffic_contenttype_downstream_kb":{}},"devtools":{"adb_key":"MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDJR73CbuLLTKMrqBzj3QXoRf1O4SJS9wLDdnbJDLvcZz3f0rlKkzuxlSu4zNDYQlVQqiPuuiDN89yOjz2CIAZ+8f5el4hQvUIy4IPfg5E48wtr9ziiAK6diL+h0UqeaEzTlaz+Bxi3ILYeKfdTxeFmQo1pF+H9b6fuQIEGfmCWatUrg2d9Zx+NOfXgPSQ8b+o++KqwZClZmy7QFrhu0XZ3AC2dYIbXIF6kQRCZo/IoI48qE34mGKXOWxO8YGPRz7wqfAn1E6EUZ4YIel3dCIMdINCwNRVCmxb+CqlBQedJCz8YyLjvTpfw++pQNHzopNzORH8e5dBxXs28fIvoCKO9AgMBAAECggEAAMBulj0NRkaXPmi+kOBIrx0hzMtc8jPfdATrfSU5x2EwUzdpfzyNBsUAmIxVRFV9FZPJFhFmYXaFbpfc2jFN7Ofw8//7X5fRWTjK7UkDwBNySbku4jX/8PErjApoza4kiU7ACmPS5Q4vd+3esVamGJhriEaxTp294g8mHDTZHf6u8DB2kgFBeURkBgJdDP/TxxXSocidDr+q9MUaxCHg1vXH856illgtMPxdD0755HYfQxPfZm2XVZdDB0Em0ZXPUQnDLCN4jRQYVO+5cWrSU66Ps6/HY5fQYKBBja4aiLN92CKNRMKwWuU5gF4MkLN9trY8aowPn6PYOwZXNaTGkQKBgQD8FDwxpCvti6Yjbjln/x+1R7Idzscribj+JSwBMC/X0si9JMIkIy720Opr1bN7YBvIL6y6o0hiBbRUAoLf6vH6LBX+Dcm3ofU0KYrx2vrdSpJebxt67P7zzQrMOW2HYofL49CETrLm7hq9iMigkZn5hN4JDsTVkD/aW5dV7O+ikQKBgQDMaTpjHrVVi4ZxiWfS3wriKilMLn8WA2xOBRFg91rI6R+8aFDEhaUDPjsjq5VBPa+utkXWzuqpkzTgIkYJA8HhiB85Pr0H/Wg3KnKOHX6ePFDbHUu65LHfRDXN7kz1rXtL2dFYH/+4xI+ykPpxpr0Nb6FsnVujEcqf1n3wLdesbQKBgQCncpGhsBp2C0PrWTbM/E4Fz4BkCI2JQE0glXSrvWSqixxJeHd2JeD2l0SBKU22cNtDmVe2Cuz0IDHvdFOXhqwCsPJS9rm+P9lwMwBXNE1cXkLodAnfGDsrnFLF4of9XNgz+jrzCIwSlqwwpwIOl2metEIB5kueSdoApMLcky2D4QKBgQCSRpMDr0vwRYIV6VAktHujUKxw2a0T4as1QacoDpomv7x4JOX3W/OzmGrVocmTAEOh8MmVaEjAxJjH837OoKOzcqd1XZIED7DuGTAUxsJ/FYZ+5j31JgarULJ4BRmJjXV32A1Y1L04SWDTVbACeGE9Ji8L/KdA0FCBhQpmP0fhGQKBgQDqYZH6h7P/553QshuEP27+M4T93PvQZhgmE0ImiYZcvtnBJ0WCnB2fB0D7Q+xCDMYrBgFiYF2RZYbxGKmJH1GQGnlGzDPHe7rykrDFoleBeaTNTeecBni9LE4F5jGxAQNPfZWQmKsEURvIHsHiCznzWmw4FxtfYrPczzRfgseKmg==","preferences":{"Inspector.drawerSplitViewState":"{\"horizontal\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","InspectorView.splitViewState":"{\"vertical\":{\"size\":702},\"horizontal\":{\"size\":329}}","console.sidebar.width":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","console.sidebarSelectedFilter":"\"message\"","currentDockState":"\"bottom\"","emulation.deviceModeValue":"{\"device\":\"\",\"orientation\":\"\",\"mode\":\"\"}","emulation.showDeviceMode":"false","inspectorVersion":"28","lastDockState":"\"right\"","panel-selectedTab":"\"console\"","releaseNoteVersionSeen":"22","sourcesPanelNavigatorSplitViewState":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"}}","sourcesPanelSplitViewState":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"}}","standardEmulatedDeviceList":"[{\"title\":\"iPhone 4\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":320,\"height\":480},\"horizontal\":{\"width\":480,\"height\":320}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"BlackBerry Z30\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":360,\"height\":640},\"horizontal\":{\"width\":640,\"height\":360}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Nexus 4\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.0 Mobile Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":384,\"height\":640},\"horizontal\":{\"width\":640,\"height\":384}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Nexus 5\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.0 Mobile Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":3,\"vertical\":{\"width\":360,\"height\":640},\"horizontal\":{\"width\":640,\"height\":360}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":25,\"right\":0,\"bottom\":48},\"image\":\"@url(google-nexus-5-vertical-default-1x.png) 1x, @url(google-nexus-5-vertical-default-2x.png) 2x\"},{\"title\":\"navigation bar\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":80,\"right\":0,\"bottom\":48},\"image\":\"@url(google-nexus-5-vertical-navigation-1x.png) 1x, @url(google-nexus-5-vertical-navigation-2x.png) 2x\"},{\"title\":\"keyboard\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":80,\"right\":0,\"bottom\":312},\"image\":\"@url(google-nexus-5-vertical-keyboard-1x.png) 1x, @url(google-nexus-5-vertical-keyboard-2x.png) 2x\"},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":25,\"right\":42,\"bottom\":0},\"image\":\"@url(google-nexus-5-horizontal-default-1x.png) 1x, @url(google-nexus-5-horizontal-default-2x.png) 2x\"},{\"title\":\"navigation bar\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":80,\"right\":42,\"bottom\":0},\"image\":\"@url(google-nexus-5-horizontal-navigation-1x.png) 1x, @url(google-nexus-5-horizontal-navigation-2x.png) 2x\"},{\"title\":\"keyboard\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":80,\"right\":42,\"bottom\":202},\"image\":\"@url(google-nexus-5-horizontal-keyboard-1x.png) 1x, @url(google-nexus-5-horizontal-keyboard-2x.png) 2x\"}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Nexus 5X\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.0 Mobile Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2.625,\"vertical\":{\"width\":412,\"height\":732,\"outline\":{\"insets\":{\"left\":18,\"top\":88,\"right\":22,\"bottom\":98},\"image\":\"@url(Nexus5X-portrait.svg)\"}},\"horizontal\":{\"width\":732,\"height\":412,\"outline\":{\"insets\":{\"left\":88,\"top\":21,\"right\":98,\"bottom\":19},\"image\":\"@url(Nexus5X-landscape.svg)\"}}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":24,\"right\":0,\"bottom\":48},\"image\":\"@url(google-nexus-5x-vertical-default-1x.png) 1x, @url(google-nexus-5x-vertical-default-2x.png) 2x\"},{\"title\":\"navigation bar\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":80,\"right\":0,\"bottom\":48},\"image\":\"@url(google-nexus-5x-vertical-navigation-1x.png) 1x, @url(google-nexus-5x-vertical-navigation-2x.png) 2x\"},{\"title\":\"keyboard\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":80,\"right\":0,\"bottom\":342},\"image\":\"@url(google-nexus-5x-vertical-keyboard-1x.png) 1x, @url(google-nexus-5x-vertical-keyboard-2x.png) 2x\"},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":24,\"right\":48,\"bottom\":0},\"image\":\"@url(google-nexus-5x-horizontal-default-1x.png) 1x, @url(google-nexus-5x-horizontal-default-2x.png) 2x\"},{\"title\":\"navigation bar\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":80,\"right\":48,\"bottom\":0},\"image\":\"@url(google-nexus-5x-horizontal-navigation-1x.png) 1x, @url(google-nexus-5x-horizontal-navigation-2x.png) 2x\"},{\"title\":\"keyboard\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":80,\"right\":48,\"bottom\":222},\"image\":\"@url(google-nexus-5x-horizontal-keyboard-1x.png) 1x, @url(google-nexus-5x-horizontal-keyboard-2x.png) 2x\"}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Nexus 6\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.0 Mobile Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":3.5,\"vertical\":{\"width\":412,\"height\":732},\"horizontal\":{\"width\":732,\"height\":412}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Nexus 6P\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.0 Mobile Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":3.5,\"vertical\":{\"width\":412,\"height\":732,\"outline\":{\"insets\":{\"left\":16,\"top\":94,\"right\":16,\"bottom\":88},\"image\":\"@url(Nexus6P-portrait.svg)\"}},\"horizontal\":{\"width\":732,\"height\":412,\"outline\":{\"insets\":{\"left\":94,\"top\":17,\"right\":88,\"bottom\":17},\"image\":\"@url(Nexus6P-landscape.svg)\"}}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"LG Optimus L70\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.0 Mobile Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":1.25,\"vertical\":{\"width\":384,\"height\":640},\"horizontal\":{\"width\":640,\"height\":384}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Nokia N9\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":1,\"vertical\":{\"width\":480,\"height\":854},\"horizontal\":{\"width\":854,\"height\":480}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Nokia Lumia 520\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":1.5,\"vertical\":{\"width\":320,\"height\":533},\"horizontal\":{\"width\":533,\"height\":320}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Microsoft Lumia 550\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":640,\"height\":360},\"horizontal\":{\"width\":640,\"height\":360}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Microsoft Lumia 950\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":4,\"vertical\":{\"width\":360,\"height\":640},\"horizontal\":{\"width\":640,\"height\":360}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Galaxy S III\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":360,\"height\":640},\"horizontal\":{\"width\":640,\"height\":360}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Kindle Fire HDX\",\"type\":\"tablet\",\"user-agent\":\"Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":800,\"height\":1280},\"horizontal\":{\"width\":1280,\"height\":800}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"iPad Mini\",\"type\":\"tablet\",\"user-agent\":\"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":768,\"height\":1024},\"horizontal\":{\"width\":1024,\"height\":768}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Blackberry PlayBook\",\"type\":\"tablet\",\"user-agent\":\"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":1,\"vertical\":{\"width\":600,\"height\":1024},\"horizontal\":{\"width\":1024,\"height\":600}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Nexus 10\",\"type\":\"tablet\",\"user-agent\":\"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.0 Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":800,\"height\":1280},\"horizontal\":{\"width\":1280,\"height\":800}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Nexus 7\",\"type\":\"tablet\",\"user-agent\":\"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.0 Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":600,\"height\":960},\"horizontal\":{\"width\":960,\"height\":600}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Galaxy Note 3\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":3,\"vertical\":{\"width\":360,\"height\":640},\"horizontal\":{\"width\":640,\"height\":360}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Galaxy Note II\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":360,\"height\":640},\"horizontal\":{\"width\":640,\"height\":360}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Laptop with touch\",\"type\":\"notebook\",\"user-agent\":\"\",\"capabilities\":[\"touch\"],\"screen\":{\"device-pixel-ratio\":1,\"vertical\":{\"width\":950,\"height\":1280},\"horizontal\":{\"width\":1280,\"height\":950}},\"modes\":[{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Laptop with HiDPI screen\",\"type\":\"notebook\",\"user-agent\":\"\",\"capabilities\":[],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":900,\"height\":1440},\"horizontal\":{\"width\":1440,\"height\":900}},\"modes\":[{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Laptop with MDPI screen\",\"type\":\"notebook\",\"user-agent\":\"\",\"capabilities\":[],\"screen\":{\"device-pixel-ratio\":1,\"vertical\":{\"width\":800,\"height\":1280},\"horizontal\":{\"width\":1280,\"height\":800}},\"modes\":[{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"JioPhone 2\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":1,\"vertical\":{\"width\":240,\"height\":320},\"horizontal\":{\"width\":320,\"height\":240}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":false,\"show\":\"Default\"},{\"title\":\"Galaxy S5\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.0 Mobile Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":3,\"vertical\":{\"width\":360,\"height\":640},\"horizontal\":{\"width\":640,\"height\":360}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":true,\"show\":\"Default\"},{\"title\":\"Pixel 2\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.0 Mobile Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2.625,\"vertical\":{\"width\":411,\"height\":731},\"horizontal\":{\"width\":731,\"height\":411}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":true,\"show\":\"Default\"},{\"title\":\"Pixel 2 XL\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.0 Mobile Safari/537.36\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":3.5,\"vertical\":{\"width\":411,\"height\":823},\"horizontal\":{\"width\":823,\"height\":411}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":true,\"show\":\"Default\"},{\"title\":\"iPhone 5/SE\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":320,\"height\":568,\"outline\":{\"insets\":{\"left\":29,\"top\":105,\"right\":25,\"bottom\":111},\"image\":\"@url(iPhone5-portrait.svg)\"}},\"horizontal\":{\"width\":568,\"height\":320,\"outline\":{\"insets\":{\"left\":115,\"top\":25,\"right\":115,\"bottom\":28},\"image\":\"@url(iPhone5-landscape.svg)\"}}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":true,\"show\":\"Default\"},{\"title\":\"iPhone 6/7/8\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":375,\"height\":667,\"outline\":{\"insets\":{\"left\":28,\"top\":105,\"right\":28,\"bottom\":105},\"image\":\"@url(iPhone6-portrait.svg)\"}},\"horizontal\":{\"width\":667,\"height\":375,\"outline\":{\"insets\":{\"left\":106,\"top\":28,\"right\":106,\"bottom\":28},\"image\":\"@url(iPhone6-landscape.svg)\"}}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":true,\"show\":\"Default\"},{\"title\":\"iPhone 6/7/8 Plus\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":3,\"vertical\":{\"width\":414,\"height\":736,\"outline\":{\"insets\":{\"left\":26,\"top\":107,\"right\":30,\"bottom\":111},\"image\":\"@url(iPhone6Plus-portrait.svg)\"}},\"horizontal\":{\"width\":736,\"height\":414,\"outline\":{\"insets\":{\"left\":109,\"top\":29,\"right\":109,\"bottom\":27},\"image\":\"@url(iPhone6Plus-landscape.svg)\"}}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":true,\"show\":\"Default\"},{\"title\":\"iPhone X\",\"type\":\"phone\",\"user-agent\":\"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":3,\"vertical\":{\"width\":375,\"height\":812},\"horizontal\":{\"width\":812,\"height\":375}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":true,\"show\":\"Default\"},{\"title\":\"iPad\",\"type\":\"tablet\",\"user-agent\":\"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":768,\"height\":1024,\"outline\":{\"insets\":{\"left\":52,\"top\":114,\"right\":55,\"bottom\":114},\"image\":\"@url(iPad-portrait.svg)\"}},\"horizontal\":{\"width\":1024,\"height\":768,\"outline\":{\"insets\":{\"left\":112,\"top\":56,\"right\":116,\"bottom\":52},\"image\":\"@url(iPad-landscape.svg)\"}}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":true,\"show\":\"Default\"},{\"title\":\"iPad Pro\",\"type\":\"tablet\",\"user-agent\":\"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1\",\"capabilities\":[\"touch\",\"mobile\"],\"screen\":{\"device-pixel-ratio\":2,\"vertical\":{\"width\":1024,\"height\":1366},\"horizontal\":{\"width\":1366,\"height\":1024}},\"modes\":[{\"title\":\"default\",\"orientation\":\"vertical\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}},{\"title\":\"default\",\"orientation\":\"horizontal\",\"insets\":{\"left\":0,\"top\":0,\"right\":0,\"bottom\":0}}],\"show-by-default\":true,\"show\":\"Default\"}]","undefined-tabOrder":"{\"Styles\":10,\"Computed\":11}"}},"download":{"directory_upgrade":true},"extensions":{"alerts":{"initialized":true},"chrome_url_overrides":{},"last_chrome_version":"80.0.3987.0"},"gaia_cookie":{"changed_time":1583702934.6294,"hash":"CQh8bIGPnEezOyGwW+l87mxLJjM=","last_list_accounts_data":"[\"gaia.l.a.r\",[[\"gaia.l.a\",1,\"6_Master Account\",\"y.curators001@gmail.com\",\"https://lh3.googleusercontent.com/-4WCblXFtCgQ/AAAAAAAAAAI/AAAAAAAAAAA/sX0ab0eBgtY/s48-c/photo.jpg\",1,1,0,null,1,\"107301051143012985912\",null,null,null,null,1]\n]\n]\n","periodic_report_time":1595431921.400881},"gcm":{"check_time":"13239917693393818","product_category_for_subtypes":"org.chromium.macosx","push_messaging_application_id_map":{"wp:https://www.youtube.com/#DA585EF4-5796-437D-9111-B0C7D23F0-V2":"https://www.youtube.com/#0"}},"google":{"services":{"signin_scoped_device_id":"07e8c477-a544-4849-804d-e82705bbaa34"}},"http_original_content_length":"8451558","http_received_content_length":"8451558","invalidator":{"client_id":"VXCK3chLxueP5hBUkgMjlw=="},"language_model_counters":{"en":928},"media":{"device_id_salt":"BA3D11D202A8679C2454B47CC6DBD91D","engagement":{"schema_version":4}},"media_router":{"receiver_id_hash_token":"92cMoES9qXdXg4yZ6/J3+6lfgHDR/4PeY4QfiML/MtMqVqyt1w8lI0dk3rPjGxE+rrA8vNAb1Zo1K1Mrg+axzw=="},"ntp":{"custom_background_local_to_device":false,"num_personal_suggestions":3},"plugins":{"plugins_list":[]},"previews":{"litepage":{"user-needs-notification":false},"offline_helper":{"available_pages":{}}},"profile":{"avatar_bubble_tutorial_shown":2,"avatar_index":26,"content_settings":{"exceptions":{"accessibility_events":{},"app_banner":{"https://alligator.io:443,*":{"last_modified":"13237165319601542","setting":{"https://alligator.io/":{"next_install_text_animation":{"delay":"86400000000","last_shown":"13237165018274384"}},"https://alligator.io/?utm_campaign=web_app":{"couldShowBannerEvents":1.323716531960152e+16}}},"https://www.freecodecamp.org:443,*":{"last_modified":"13237168198683659","setting":{"https://www.freecodecamp.org/forum/":{"couldShowBannerEvents":1.3237168198683642e+16,"next_install_text_animation":{"delay":"86400000000","last_shown":"13237168197645828"}}}},"https://www.kirupa.com:443,*":{"last_modified":"13237163714938871","setting":{"https://www.kirupa.com/":{"next_install_text_animation":{"delay":"86400000000","last_shown":"13237163705271496"}},"https://www.kirupa.com/index.html?source=pwa":{"couldShowBannerEvents":1.3237163714938854e+16}}}},"auto_select_certificate":{},"automatic_downloads":{},"autoplay":{},"background_sync":{},"bluetooth_chooser_data":{},"bluetooth_guard":{},"bluetooth_scanning":{},"client_hints":{"https://www.amazon.co.uk:443,*":{"last_modified":"13237165710877274","setting":{"client_hints":[4,5,6],"expiration_time":1592778510.877266}},"https://www.google.com:443,*":{"last_modified":"13228512722338423","setting":{"client_hints":[1],"expiration_time":1586631122.338416}},"https://www.youtube.com:443,*":{"last_modified":"13239913349102216","setting":{"client_hints":[1],"expiration_time":1598031749.102212}}},"clipboard":{},"cookies":{},"durable_storage":{},"flash_data":{},"geolocation":{},"hid_chooser_data":{},"hid_guard":{},"images":{},"important_site_info":{},"installed_web_app_metadata":{},"intent_picker_auto_display":{},"javascript":{},"legacy_cookie_access":{},"media_engagement":{"http://www.their.tube:80,*":{"last_modified":"13239921170994776","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":2}},"https://aboutme.google.com:443,*":{"last_modified":"13237233065008360","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":3}},"https://alligator.io:443,*":{"last_modified":"13237207585266767","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":3}},"https://b.hatena.ne.jp:443,*":{"last_modified":"13237168883129590","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://codeburst.io:443,*":{"last_modified":"13237161919276039","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://developer.mozilla.org:443,*":{"last_modified":"13237302005343061","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":11}},"https://en.wikipedia.org:443,*":{"last_modified":"13237221708150278","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://github.com:443,*":{"last_modified":"13239921170990257","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":5}},"https://gomakethings.com:443,*":{"last_modified":"13237161919271370","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://health.clevelandclinic.org:443,*":{"last_modified":"13237220472965209","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://mediakix.com:443,*":{"last_modified":"13237221708139202","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://myaccount.google.com:443,*":{"last_modified":"13237233065004331","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":7}},"https://note.com:443,*":{"last_modified":"13237165842287167","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://rationalwiki.org:443,*":{"last_modified":"13237229551607543","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://stackoverflow.com:443,*":{"last_modified":"13237229557657408","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":7}},"https://teamtreehouse.com:443,*":{"last_modified":"13237163649581246","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.amazon.co.uk:443,*":{"last_modified":"13237167860334440","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.bbc.co.uk:443,*":{"last_modified":"13237224094530130","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.bbcgoodfood.com:443,*":{"last_modified":"13237221708163751","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.businessinsider.com:443,*":{"last_modified":"13237224681355874","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.freecodecamp.org:443,*":{"last_modified":"13237168198684018","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.geeksforgeeks.org:443,*":{"last_modified":"13237207067334581","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":2}},"https://www.good.is:443,*":{"last_modified":"13237224053882039","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.google.com:443,*":{"last_modified":"13238190902594660","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":65}},"https://www.kirupa.com:443,*":{"last_modified":"13237163736636846","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.reddit.com:443,*":{"last_modified":"13237223859565163","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.technologyreview.com:443,*":{"last_modified":"13237211187218054","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.urbandictionary.com:443,*":{"last_modified":"13237224685880465","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}},"https://www.w3schools.com:443,*":{"last_modified":"13237207585261644","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":8}},"https://www.youtube.com:443,*":{"last_modified":"13239916395950466","setting":{"audiblePlaybacks":101,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":1.3237223175826444e+16,"mediaElementPlaybacks":2,"mediaPlaybacks":2,"significantPlaybacks":35,"visits":110}},"https://zellwk.com:443,*":{"last_modified":"13237163701083832","setting":{"audiblePlaybacks":0,"audioContextPlaybacks":0,"hasHighScore":false,"highScoreChanges":0,"lastMediaPlaybackTime":0.0,"mediaElementPlaybacks":0,"mediaPlaybacks":0,"significantPlaybacks":0,"visits":1}}},"media_stream_camera":{},"media_stream_mic":{},"midi_sysex":{},"mixed_script":{},"native_file_system_write_guard":{},"nfc":{},"notifications":{"https://www.youtube.com:443,*":{"last_modified":"13228176559476548","setting":1}},"password_protection":{},"payment_handler":{},"permission_autoblocking_data":{"https://www.reddit.com:443,*":{"last_modified":"13237223506630674","setting":{"Notifications":{"dismiss_count":1}}}},"plugins":{},"popups":{},"ppapi_broker":{},"protocol_handler":{},"sensors":{},"serial_chooser_data":{},"serial_guard":{},"site_engagement":{"http://www.their.tube:80,*":{"last_modified":"13239919648869169","setting":{"lastEngagementTime":1.3239919648869118e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":4.8,"rawScore":6.590459099100704}},"https://aboutme.google.com:443,*":{"last_modified":"13239905521337431","setting":{"lastEngagementTime":1.3239348129814824e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":8.099999999999998,"rawScore":7.989599999999998}},"https://alligator.io:443,*":{"last_modified":"13239905521337665","setting":{"lastEngagementTime":1.323932263391824e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":5.699999999999999,"rawScore":10.875165324902397}},"https://b.hatena.ne.jp:443,*":{"last_modified":"13239905521337730","setting":{"lastEngagementTime":1.323928963188358e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":2.1,"rawScore":2.1}},"https://codeburst.io:443,*":{"last_modified":"13239905521337695","setting":{"lastEngagementTime":1.323928450127564e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":3.3000000000000003,"rawScore":3.3000000000000003}},"https://developer.mozilla.org:443,*":{"last_modified":"13239905521337762","setting":{"lastEngagementTime":1.3239396657876508e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":3.3000000000000003,"rawScore":15.268029116404769}},"https://en.wikipedia.org:443,*":{"last_modified":"13239905521337829","setting":{"lastEngagementTime":1.3239335605477788e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":2.7,"rawScore":2.7}},"https://github.com:443,*":{"last_modified":"13239917797191395","setting":{"lastEngagementTime":1.3239917797191366e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":6.299999999999999,"rawScore":6.831582704625739}},"https://gomakethings.com:443,*":{"last_modified":"13239905521337408","setting":{"lastEngagementTime":1.3239285584695712e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":5.1,"rawScore":5.1}},"https://mediakix.com:443,*":{"last_modified":"13239905521337527","setting":{"lastEngagementTime":1.3239336518548496e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":6.299999999999999,"rawScore":6.299999999999999}},"https://myaccount.google.com:443,*":{"last_modified":"13239905521337453","setting":{"lastEngagementTime":1.3239335485334128e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":9.899999999999997,"rawScore":9.899999999999997}},"https://rationalwiki.org:443,*":{"last_modified":"13239905521337795","setting":{"lastEngagementTime":1.3239339870377164e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":2.1,"rawScore":2.1}},"https://stackoverflow.com:443,*":{"last_modified":"13239905521337578","setting":{"lastEngagementTime":1.3239289868563336e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":10.499999999999996,"rawScore":13.471479379267478}},"https://www.bbc.co.uk:443,*":{"last_modified":"13239905521337900","setting":{"lastEngagementTime":1.3239339217628376e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":2.1,"rawScore":2.1}},"https://www.businessinsider.com:443,*":{"last_modified":"13239905521337340","setting":{"lastEngagementTime":1.3239339683254212e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":3.9000000000000004,"rawScore":3.9000000000000004}},"https://www.google.com:443,*":{"last_modified":"13239905521337477","setting":{"lastEngagementTime":1.32395903088529e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":3.0,"rawScore":28.37873972185014}},"https://www.kirupa.com:443,*":{"last_modified":"13239905521337501","setting":{"lastEngagementTime":1.3239287468698412e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":2.7,"rawScore":2.7}},"https://www.reddit.com:443,*":{"last_modified":"13239905521337552","setting":{"lastEngagementTime":1.3239338994536596e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":7.499999999999998,"rawScore":7.499999999999998}},"https://www.youtube.com:443,*":{"last_modified":"13239913321246096","setting":{"lastEngagementTime":1.3239913321246072e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":15.0,"rawScore":36.678665675459065}},"https://zellwk.com:443,*":{"last_modified":"13239905521337635","setting":{"lastEngagementTime":1.3239287438397768e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":3.3000000000000003,"rawScore":3.3000000000000003}}},"sound":{},"ssl_cert_decisions":{},"subresource_filter":{},"subresource_filter_data":{},"usb_chooser_data":{},"usb_guard":{}},"permission_actions":{"notifications":[{"action":2,"time":"13237223506630650"},{"action":0,"time":"13238180673584144"},{"action":0,"time":"13238190818530396"},{"action":0,"time":"13238190826435310"},{"action":0,"time":"13238191124609348"}]},"pref_version":1},"created_by_version":"80.0.3987.0","exit_type":"Normal","exited_cleanly":true,"last_engagement_time":"13239919648869118","last_time_obsolete_http_credentials_removed":1592677925.969526,"managed_user_id":"","name":"Person 1","password_manager_onboarding_state":1},"safebrowsing":{"unhandled_sync_password_reuses":{}},"savefile":{"default_directory":"/Users/tomokihara/Downloads"},"selectfile":{"last_directory":"/Users/tomokihara/SCREEN_SHOT"},"signin":{"DiceMigrationComplete":true,"allowed":true},"spellcheck":{"dictionaries":["en-GB"]},"translate_site_blacklist_with_time":{},"web_apps":{"system_web_app_last_installed_language":"en-GB","system_web_app_last_update":"80.0.3987.0"}} -------------------------------------------------------------------------------- /cookies/curator1_cookie/Default/TransportSecurity: -------------------------------------------------------------------------------- 1 | { 2 | "/Io2PStL7/jvcod3tT0jPo73HDnRILY4Di46SHjGwTk=": { 3 | "expiry": 1626978808.672777, 4 | "mode": "force-https", 5 | "sts_include_subdomains": false, 6 | "sts_observed": 1595442808.672779 7 | }, 8 | "5EdUoB7YUY9zZV+2DkgVXgho8WUvp+D+6KpeUOhNQIM=": { 9 | "expiry": 1626979007.652983, 10 | "mode": "force-https", 11 | "sts_include_subdomains": false, 12 | "sts_observed": 1595443007.652984 13 | }, 14 | "8/RrMmQlCD2Gsp14wUCE1P8r7B2C5+yE0+g79IPyRsc=": { 15 | "expiry": 1624401606.893323, 16 | "mode": "force-https", 17 | "sts_include_subdomains": false, 18 | "sts_observed": 1592865606.893324 19 | }, 20 | "Ifty0kmGtBkqpzyRNEJ2iccvLpOffAEtEf72UjNCr0U=": { 21 | "expiry": 1626982040.6269, 22 | "mode": "force-https", 23 | "sts_include_subdomains": true, 24 | "sts_observed": 1595446040.626902 25 | }, 26 | "M4bfUnCmQAi4PNb3B8aI/2+SVJhHKsMfMMT7fzi6ij4=": { 27 | "expiry": 1626982049.452948, 28 | "mode": "force-https", 29 | "sts_include_subdomains": true, 30 | "sts_observed": 1595446049.452949 31 | }, 32 | "bVzOnu6xyelN8iVLDSbFjyZVgXrXDyLSokjnq2hdUFs=": { 33 | "expiry": 1626980358.421655, 34 | "mode": "force-https", 35 | "sts_include_subdomains": true, 36 | "sts_observed": 1595444358.421657 37 | }, 38 | "e3SziuwfuO2UvuBno+qkR1ObHAzZmSUoJhrc7dbP1Uo=": { 39 | "expiry": 1625253506.821387, 40 | "mode": "force-https", 41 | "sts_include_subdomains": true, 42 | "sts_observed": 1593717506.821389 43 | }, 44 | "fJjUrPqhktMfiTHJX3Q0pJi/P12Q72DBgzzJqjlNC4o=": { 45 | "expiry": 1606332449.52331, 46 | "mode": "force-https", 47 | "sts_include_subdomains": true, 48 | "sts_observed": 1595446049.523312 49 | }, 50 | "kTBZlNzaAygsyUNLLJvF9CS33eqAcPjUb75PGjCOtnM=": { 51 | "expiry": 1626980201.29627, 52 | "mode": "force-https", 53 | "sts_include_subdomains": false, 54 | "sts_observed": 1595444201.29627 55 | }, 56 | "kYxWDeIDVgesBS02XkmPRTIpB0nkimBvKZESXctn8eA=": { 57 | "expiry": 1626978802.237607, 58 | "mode": "force-https", 59 | "sts_include_subdomains": false, 60 | "sts_observed": 1595442802.237608 61 | }, 62 | "kkB5ib/+M7npcrRR7ZcVsOzujXBba6S9s0C/7USAGao=": { 63 | "expiry": 1626978808.246168, 64 | "mode": "force-https", 65 | "sts_include_subdomains": false, 66 | "sts_observed": 1595442808.24617 67 | }, 68 | "nAuqgR4iEWti7SOdT3UHPl6rmZU/DeaIm38P2O2OkgA=": { 69 | "expiry": 1626982049.400863, 70 | "mode": "force-https", 71 | "sts_include_subdomains": false, 72 | "sts_observed": 1595446049.400864 73 | }, 74 | "qOq9d3Vj/FCJMQBeLoGIOe5T74snNp8yRtzOZDIEwwo=": { 75 | "expiry": 1626978820.714872, 76 | "mode": "force-https", 77 | "sts_include_subdomains": false, 78 | "sts_observed": 1595442820.714872 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /cookies/curator1_cookie/Local State: -------------------------------------------------------------------------------- 1 | {"hardware_acceleration_mode_previous":true,"policy":{"last_statistics_update":"13239905520459401"},"profile":{"info_cache":{"Default":{"active_time":1595443701.987258,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_26","background_apps":false,"gaia_given_name":"","gaia_id":"","gaia_name":"","is_consented_primary_account":false,"is_ephemeral":false,"is_omitted_from_profile_list":false,"is_using_default_avatar":true,"is_using_default_name":true,"local_auth_credentials":"","managed_user_id":"","metrics_bucket_index":1,"name":"Person 1","user_name":""}},"last_active_profiles":["Default"],"metrics":{"next_bucket_index":2}},"rappor":{"cohort_seed":299,"last_daily_sample":"13239905535459462","secret":"YJ4P5UnMmTTD9YGpCas12rLP/Ut+bBczkbREhVZIvp5W6tdbcdNXuPv3A2t64DxC"},"shutdown":{"num_processes":4,"num_processes_slow":0,"type":1},"subresource_filter":{"ruleset_version":{"checksum":290860380,"content":"9.13.0","format":26}},"tab_stats":{"last_daily_sample":"13239905520673922","max_tabs_per_window":3,"total_tab_count_max":3,"window_count_max":1},"ukm":{"persisted_logs":[]},"uninstall_metrics":{"installation_date2":"1583701962","launch_count":"208","page_load_count":"3421"},"updateclientdata":{"apps":{"bklopemakmnopmghhmccadeonafabnal":{"cohort":"1:swl:","cohorthint":"Auto","cohortname":"Auto","dlrc":4951,"pf":"4476b23d-517d-4caa-a3d3-ecad51323a4a"},"gcmjkmgdlgnkkcocmoeiminaijmmjnii":{"cohort":"1:bm1:vs3@0.01,vux@0.1","cohorthint":"M54ToM99","cohortname":"M54ToM99","dlrc":4951,"pf":"d6188de5-6c92-44b5-b206-b8ee07d64e8a"},"ggkkehgbnfjpeggfpleeakpidbkibbmn":{"cohort":"1:ut9:w09@0.01","cohorthint":"M80ToM89","cohortname":"M80ToM89","dlrc":4951,"pf":"aa41fe6f-3916-4397-9ba7-d9b81edf4832"},"giekcmmlnklenlaomppkphknjmnnpneh":{"cohort":"1:j5l:","cohorthint":"Auto","cohortname":"Auto","dlrc":4951,"pf":"bfe74e0f-b4e0-4ac8-a895-b867644e8ebd"},"hfnkpimlhhgieaddgfemjhofmfblmnib":{"cohort":"1:jcl:","cohorthint":"Auto","cohortname":"Auto","dlrc":4951,"pf":"15045b08-c879-42f6-8f5b-13e6ebe89b22"},"hnimpnehoodheedghdeeijklkeaacbdc":{"cohort":"","cohortname":"","dlrc":4951,"pf":"9be204c4-dd4d-424a-9fb7-d796ee5d6523"},"jflookgnkcckhobaglndicnbbgbonegd":{"cohort":"1:s7x:","cohorthint":"Auto","cohortname":"Auto","dlrc":4951,"pf":"8b9828ac-e978-47b1-b2e4-6e013a6c9408"},"khaoiebndkojlmppeemjhbpbandiljpe":{"cohort":"1:cux:","cohorthint":"Auto","cohortname":"Auto","dlrc":4951,"pf":"8feffec0-5f16-4654-92b6-ba37113b31e6"},"llkgjffcdpffmhiakmfcdcblohccpfmo":{"cohort":"","cohortname":"","dlrc":4951,"pf":"d71cb5c5-fed6-410d-9509-57484e8c6f9f"},"obedbbhbpmojnkanicioggnmelmoomoc":{"cohort":"1:s6f:","cohorthint":"Auto","cohortname":"Auto","dlrc":4951,"pf":"c52d34fd-8e4b-46df-93d4-2bc8bc1cd2b1"}}},"user_experience_metrics":{"client_id2":"0c9281a8-46aa-4917-8d72-d9ae30b372ec","client_id_timestamp":"1583701962","low_entropy_source3":1562,"session_id":207,"stability":{"breakpad_registration_fail":204,"breakpad_registration_ok":0,"browser_last_live_timestamp":"13239921171098926","child_process_crash_count":0,"crash_count":110,"debugger_not_present":204,"debugger_present":0,"deferred_count":0,"discard_count":1,"exited_cleanly":true,"extension_renderer_crash_count":0,"extension_renderer_failed_launch_count":0,"extension_renderer_launch_count":0,"gpu_crash_count":0,"incomplete_session_end_count":0,"launch_count":208,"page_load_count":3421,"plugin_stats2":[],"renderer_crash_count":0,"renderer_failed_launch_count":0,"renderer_hang_count":0,"renderer_launch_count":1250,"saved_system_profile":"CNCRje8FEhQ4MC4wLjM5ODcuMC02NC1kZXZlbBjQuZXzBSIFZW4tR0IqEwoITWFjIE9TIFgSBzEwLjE1LjQyUwoGeDg2XzY0EICAASIOTWFjQm9va1BybzE2LDEoAjCADzi4CEIKCAAQABoAMgA6AGUAAIA/ahYKDEdlbnVpbmVJbnRlbBDtjSQYECAAggEAigEASgoNN9MeBxU30x4HSgoNW6DiYhVGI3+QSgoNeNtswxXfF0o/SgoN6Vej5BXfF0o/SgoN65ioIxV0z5P8SgoNkN68nRXfF0o/SgoNaHRBBRXfF0o/SgoNPiMzKxXJphyISgoNgq6lTRXfF0o/SgoNYIdNSRXfF0o/SgoNJIbmlBXEjz+ASgoNkrdXsxXfF0o/UABiAGoMCAAQABgAIAY4AEAAgAHQuZXzBZgBAA==","saved_system_profile_hash":"22D43CA826147F741D021E37D03533591A7A394F","session_end_completed":true,"stats_buildtime":"1575176400","stats_version":"80.0.3987.0-64-devel","version_mismatch_count":0}},"variations_crash_streak":110,"was":{"restarted":false}} -------------------------------------------------------------------------------- /cookies/curator1_cookie/chrome_shutdown_ms.txt: -------------------------------------------------------------------------------- 1 | 231 -------------------------------------------------------------------------------- /images/2020-07-22prepper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/images/2020-07-22prepper.jpg -------------------------------------------------------------------------------- /images/theirtube_backend.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kihapper/TheirTube/4cb6951f74610f8e7c533bbf080fc68ddd17a745/images/theirtube_backend.gif -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "version1", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/color-name": { 8 | "version": "1.1.1", 9 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 10 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" 11 | }, 12 | "@types/debug": { 13 | "version": "4.1.5", 14 | "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", 15 | "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" 16 | }, 17 | "@types/mime-types": { 18 | "version": "2.1.0", 19 | "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.0.tgz", 20 | "integrity": "sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM=" 21 | }, 22 | "@types/node": { 23 | "version": "13.9.0", 24 | "resolved": "https://registry.npmjs.org/@types/node/-/node-13.9.0.tgz", 25 | "integrity": "sha512-0ARSQootUG1RljH2HncpsY2TJBfGQIKOOi7kxzUY6z54ePu/ZD+wJA8zI2Q6v8rol2qpG/rvqsReco8zNMPvhQ==" 26 | }, 27 | "@types/puppeteer": { 28 | "version": "2.0.1", 29 | "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-2.0.1.tgz", 30 | "integrity": "sha512-G8vEyU83Bios+dzs+DZGpAirDmMqRhfFBJCkFrg+A5+6n5EPPHxwBLImJto3qjh0mrBXbLBCyuahhhtTrAfR5g==", 31 | "requires": { 32 | "@types/node": "*" 33 | } 34 | }, 35 | "agent-base": { 36 | "version": "5.1.1", 37 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", 38 | "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==" 39 | }, 40 | "ansi-regex": { 41 | "version": "5.0.0", 42 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 43 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 44 | }, 45 | "ansi-styles": { 46 | "version": "4.2.1", 47 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 48 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 49 | "requires": { 50 | "@types/color-name": "^1.1.1", 51 | "color-convert": "^2.0.1" 52 | } 53 | }, 54 | "arr-union": { 55 | "version": "3.1.0", 56 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", 57 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" 58 | }, 59 | "async-limiter": { 60 | "version": "1.0.1", 61 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", 62 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" 63 | }, 64 | "balanced-match": { 65 | "version": "1.0.0", 66 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 67 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 68 | }, 69 | "boolbase": { 70 | "version": "1.0.0", 71 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 72 | "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" 73 | }, 74 | "brace-expansion": { 75 | "version": "1.1.11", 76 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 77 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 78 | "requires": { 79 | "balanced-match": "^1.0.0", 80 | "concat-map": "0.0.1" 81 | } 82 | }, 83 | "buffer-crc32": { 84 | "version": "0.2.13", 85 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 86 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" 87 | }, 88 | "buffer-from": { 89 | "version": "1.1.1", 90 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 91 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" 92 | }, 93 | "camelcase": { 94 | "version": "5.3.1", 95 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 96 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" 97 | }, 98 | "chalk": { 99 | "version": "3.0.0", 100 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 101 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 102 | "requires": { 103 | "ansi-styles": "^4.1.0", 104 | "supports-color": "^7.1.0" 105 | } 106 | }, 107 | "cheerio": { 108 | "version": "1.0.0-rc.3", 109 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", 110 | "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", 111 | "requires": { 112 | "css-select": "~1.2.0", 113 | "dom-serializer": "~0.1.1", 114 | "entities": "~1.1.1", 115 | "htmlparser2": "^3.9.1", 116 | "lodash": "^4.15.0", 117 | "parse5": "^3.0.1" 118 | } 119 | }, 120 | "cliui": { 121 | "version": "6.0.0", 122 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", 123 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", 124 | "requires": { 125 | "string-width": "^4.2.0", 126 | "strip-ansi": "^6.0.0", 127 | "wrap-ansi": "^6.2.0" 128 | } 129 | }, 130 | "clone-deep": { 131 | "version": "0.2.4", 132 | "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", 133 | "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", 134 | "requires": { 135 | "for-own": "^0.1.3", 136 | "is-plain-object": "^2.0.1", 137 | "kind-of": "^3.0.2", 138 | "lazy-cache": "^1.0.3", 139 | "shallow-clone": "^0.1.2" 140 | } 141 | }, 142 | "color-convert": { 143 | "version": "2.0.1", 144 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 145 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 146 | "requires": { 147 | "color-name": "~1.1.4" 148 | } 149 | }, 150 | "color-name": { 151 | "version": "1.1.4", 152 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 153 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 154 | }, 155 | "concat-map": { 156 | "version": "0.0.1", 157 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 158 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 159 | }, 160 | "concat-stream": { 161 | "version": "1.6.2", 162 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 163 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 164 | "requires": { 165 | "buffer-from": "^1.0.0", 166 | "inherits": "^2.0.3", 167 | "readable-stream": "^2.2.2", 168 | "typedarray": "^0.0.6" 169 | }, 170 | "dependencies": { 171 | "readable-stream": { 172 | "version": "2.3.7", 173 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 174 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 175 | "requires": { 176 | "core-util-is": "~1.0.0", 177 | "inherits": "~2.0.3", 178 | "isarray": "~1.0.0", 179 | "process-nextick-args": "~2.0.0", 180 | "safe-buffer": "~5.1.1", 181 | "string_decoder": "~1.1.1", 182 | "util-deprecate": "~1.0.1" 183 | } 184 | }, 185 | "safe-buffer": { 186 | "version": "5.1.2", 187 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 188 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 189 | }, 190 | "string_decoder": { 191 | "version": "1.1.1", 192 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 193 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 194 | "requires": { 195 | "safe-buffer": "~5.1.0" 196 | } 197 | } 198 | } 199 | }, 200 | "core-util-is": { 201 | "version": "1.0.2", 202 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 203 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 204 | }, 205 | "cron-parser": { 206 | "version": "2.15.0", 207 | "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-2.15.0.tgz", 208 | "integrity": "sha512-rMFkrQw8+oG5OuwjiXesup4KeIlEG/IU82YtG4xyAHbO5jhKmYaHPp/ZNhq9+7TjSJ65E3zV3kQPUbmXSff2/g==", 209 | "requires": { 210 | "is-nan": "^1.3.0", 211 | "moment-timezone": "^0.5.31" 212 | } 213 | }, 214 | "css-select": { 215 | "version": "1.2.0", 216 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", 217 | "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", 218 | "requires": { 219 | "boolbase": "~1.0.0", 220 | "css-what": "2.1", 221 | "domutils": "1.5.1", 222 | "nth-check": "~1.0.1" 223 | } 224 | }, 225 | "css-what": { 226 | "version": "2.1.3", 227 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", 228 | "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" 229 | }, 230 | "debug": { 231 | "version": "4.1.1", 232 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 233 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 234 | "requires": { 235 | "ms": "^2.1.1" 236 | } 237 | }, 238 | "decamelize": { 239 | "version": "1.2.0", 240 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 241 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 242 | }, 243 | "deepmerge": { 244 | "version": "4.2.2", 245 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 246 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" 247 | }, 248 | "define-properties": { 249 | "version": "1.1.3", 250 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 251 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 252 | "requires": { 253 | "object-keys": "^1.0.12" 254 | } 255 | }, 256 | "dom-serializer": { 257 | "version": "0.1.1", 258 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", 259 | "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", 260 | "requires": { 261 | "domelementtype": "^1.3.0", 262 | "entities": "^1.1.1" 263 | } 264 | }, 265 | "domelementtype": { 266 | "version": "1.3.1", 267 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", 268 | "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" 269 | }, 270 | "domhandler": { 271 | "version": "2.4.2", 272 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", 273 | "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", 274 | "requires": { 275 | "domelementtype": "1" 276 | } 277 | }, 278 | "domutils": { 279 | "version": "1.5.1", 280 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", 281 | "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", 282 | "requires": { 283 | "dom-serializer": "0", 284 | "domelementtype": "1" 285 | } 286 | }, 287 | "emoji-regex": { 288 | "version": "8.0.0", 289 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 290 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 291 | }, 292 | "entities": { 293 | "version": "1.1.2", 294 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", 295 | "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" 296 | }, 297 | "extract-zip": { 298 | "version": "1.7.0", 299 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", 300 | "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", 301 | "requires": { 302 | "concat-stream": "^1.6.2", 303 | "debug": "^2.6.9", 304 | "mkdirp": "^0.5.4", 305 | "yauzl": "^2.10.0" 306 | }, 307 | "dependencies": { 308 | "debug": { 309 | "version": "2.6.9", 310 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 311 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 312 | "requires": { 313 | "ms": "2.0.0" 314 | } 315 | }, 316 | "ms": { 317 | "version": "2.0.0", 318 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 319 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 320 | } 321 | } 322 | }, 323 | "fd-slicer": { 324 | "version": "1.1.0", 325 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 326 | "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", 327 | "requires": { 328 | "pend": "~1.2.0" 329 | } 330 | }, 331 | "find-up": { 332 | "version": "4.1.0", 333 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 334 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 335 | "requires": { 336 | "locate-path": "^5.0.0", 337 | "path-exists": "^4.0.0" 338 | } 339 | }, 340 | "for-in": { 341 | "version": "1.0.2", 342 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 343 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" 344 | }, 345 | "for-own": { 346 | "version": "0.1.5", 347 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 348 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 349 | "requires": { 350 | "for-in": "^1.0.1" 351 | } 352 | }, 353 | "fs.realpath": { 354 | "version": "1.0.0", 355 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 356 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 357 | }, 358 | "get-caller-file": { 359 | "version": "2.0.5", 360 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 361 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 362 | }, 363 | "glob": { 364 | "version": "7.1.6", 365 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 366 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 367 | "requires": { 368 | "fs.realpath": "^1.0.0", 369 | "inflight": "^1.0.4", 370 | "inherits": "2", 371 | "minimatch": "^3.0.4", 372 | "once": "^1.3.0", 373 | "path-is-absolute": "^1.0.0" 374 | } 375 | }, 376 | "has-flag": { 377 | "version": "4.0.0", 378 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 379 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 380 | }, 381 | "htmlparser2": { 382 | "version": "3.10.1", 383 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", 384 | "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", 385 | "requires": { 386 | "domelementtype": "^1.3.1", 387 | "domhandler": "^2.3.0", 388 | "domutils": "^1.5.1", 389 | "entities": "^1.1.1", 390 | "inherits": "^2.0.1", 391 | "readable-stream": "^3.1.1" 392 | } 393 | }, 394 | "https-proxy-agent": { 395 | "version": "4.0.0", 396 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", 397 | "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", 398 | "requires": { 399 | "agent-base": "5", 400 | "debug": "4" 401 | } 402 | }, 403 | "inflight": { 404 | "version": "1.0.6", 405 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 406 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 407 | "requires": { 408 | "once": "^1.3.0", 409 | "wrappy": "1" 410 | } 411 | }, 412 | "inherits": { 413 | "version": "2.0.4", 414 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 415 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 416 | }, 417 | "is-buffer": { 418 | "version": "1.1.6", 419 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 420 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 421 | }, 422 | "is-extendable": { 423 | "version": "0.1.1", 424 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 425 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" 426 | }, 427 | "is-fullwidth-code-point": { 428 | "version": "3.0.0", 429 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 430 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 431 | }, 432 | "is-nan": { 433 | "version": "1.3.0", 434 | "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.0.tgz", 435 | "integrity": "sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ==", 436 | "requires": { 437 | "define-properties": "^1.1.3" 438 | } 439 | }, 440 | "is-plain-object": { 441 | "version": "2.0.4", 442 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 443 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 444 | "requires": { 445 | "isobject": "^3.0.1" 446 | } 447 | }, 448 | "isarray": { 449 | "version": "1.0.0", 450 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 451 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 452 | }, 453 | "isobject": { 454 | "version": "3.0.1", 455 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 456 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" 457 | }, 458 | "kind-of": { 459 | "version": "3.2.2", 460 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 461 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 462 | "requires": { 463 | "is-buffer": "^1.1.5" 464 | } 465 | }, 466 | "lazy-cache": { 467 | "version": "1.0.4", 468 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", 469 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" 470 | }, 471 | "locate-path": { 472 | "version": "5.0.0", 473 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 474 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 475 | "requires": { 476 | "p-locate": "^4.1.0" 477 | } 478 | }, 479 | "lodash": { 480 | "version": "4.17.19", 481 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", 482 | "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" 483 | }, 484 | "long-timeout": { 485 | "version": "0.1.1", 486 | "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", 487 | "integrity": "sha1-lyHXiLR+C8taJMLivuGg2lXatRQ=" 488 | }, 489 | "merge-deep": { 490 | "version": "3.0.2", 491 | "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", 492 | "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", 493 | "requires": { 494 | "arr-union": "^3.1.0", 495 | "clone-deep": "^0.2.4", 496 | "kind-of": "^3.0.2" 497 | } 498 | }, 499 | "mime": { 500 | "version": "2.4.4", 501 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", 502 | "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" 503 | }, 504 | "mime-db": { 505 | "version": "1.43.0", 506 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", 507 | "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" 508 | }, 509 | "mime-types": { 510 | "version": "2.1.26", 511 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", 512 | "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", 513 | "requires": { 514 | "mime-db": "1.43.0" 515 | } 516 | }, 517 | "minimatch": { 518 | "version": "3.0.4", 519 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 520 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 521 | "requires": { 522 | "brace-expansion": "^1.1.7" 523 | } 524 | }, 525 | "minimist": { 526 | "version": "1.2.5", 527 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 528 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 529 | }, 530 | "mixin-object": { 531 | "version": "2.0.1", 532 | "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", 533 | "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", 534 | "requires": { 535 | "for-in": "^0.1.3", 536 | "is-extendable": "^0.1.1" 537 | }, 538 | "dependencies": { 539 | "for-in": { 540 | "version": "0.1.8", 541 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", 542 | "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" 543 | } 544 | } 545 | }, 546 | "mkdirp": { 547 | "version": "0.5.5", 548 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 549 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 550 | "requires": { 551 | "minimist": "^1.2.5" 552 | } 553 | }, 554 | "moment": { 555 | "version": "2.27.0", 556 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", 557 | "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" 558 | }, 559 | "moment-timezone": { 560 | "version": "0.5.31", 561 | "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.31.tgz", 562 | "integrity": "sha512-+GgHNg8xRhMXfEbv81iDtrVeTcWt0kWmTEY1XQK14dICTXnWJnT0dxdlPspwqF3keKMVPXwayEsk1DI0AA/jdA==", 563 | "requires": { 564 | "moment": ">= 2.9.0" 565 | } 566 | }, 567 | "ms": { 568 | "version": "2.1.2", 569 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 570 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 571 | }, 572 | "node-schedule": { 573 | "version": "1.3.2", 574 | "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-1.3.2.tgz", 575 | "integrity": "sha512-GIND2pHMHiReSZSvS6dpZcDH7pGPGFfWBIEud6S00Q8zEIzAs9ommdyRK1ZbQt8y1LyZsJYZgPnyi7gpU2lcdw==", 576 | "requires": { 577 | "cron-parser": "^2.7.3", 578 | "long-timeout": "0.1.1", 579 | "sorted-array-functions": "^1.0.0" 580 | } 581 | }, 582 | "nth-check": { 583 | "version": "1.0.2", 584 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", 585 | "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", 586 | "requires": { 587 | "boolbase": "~1.0.0" 588 | } 589 | }, 590 | "object-keys": { 591 | "version": "1.1.1", 592 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 593 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" 594 | }, 595 | "once": { 596 | "version": "1.4.0", 597 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 598 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 599 | "requires": { 600 | "wrappy": "1" 601 | } 602 | }, 603 | "p-limit": { 604 | "version": "2.3.0", 605 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 606 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 607 | "requires": { 608 | "p-try": "^2.0.0" 609 | } 610 | }, 611 | "p-locate": { 612 | "version": "4.1.0", 613 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 614 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 615 | "requires": { 616 | "p-limit": "^2.2.0" 617 | } 618 | }, 619 | "p-try": { 620 | "version": "2.2.0", 621 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 622 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 623 | }, 624 | "parse5": { 625 | "version": "3.0.3", 626 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", 627 | "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", 628 | "requires": { 629 | "@types/node": "*" 630 | } 631 | }, 632 | "path-exists": { 633 | "version": "4.0.0", 634 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 635 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 636 | }, 637 | "path-is-absolute": { 638 | "version": "1.0.1", 639 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 640 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 641 | }, 642 | "pend": { 643 | "version": "1.2.0", 644 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 645 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" 646 | }, 647 | "process-nextick-args": { 648 | "version": "2.0.1", 649 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 650 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 651 | }, 652 | "progress": { 653 | "version": "2.0.3", 654 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 655 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" 656 | }, 657 | "proxy-from-env": { 658 | "version": "1.1.0", 659 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 660 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 661 | }, 662 | "puppeteer": { 663 | "version": "2.1.1", 664 | "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-2.1.1.tgz", 665 | "integrity": "sha512-LWzaDVQkk1EPiuYeTOj+CZRIjda4k2s5w4MK4xoH2+kgWV/SDlkYHmxatDdtYrciHUKSXTsGgPgPP8ILVdBsxg==", 666 | "requires": { 667 | "@types/mime-types": "^2.1.0", 668 | "debug": "^4.1.0", 669 | "extract-zip": "^1.6.6", 670 | "https-proxy-agent": "^4.0.0", 671 | "mime": "^2.0.3", 672 | "mime-types": "^2.1.25", 673 | "progress": "^2.0.1", 674 | "proxy-from-env": "^1.0.0", 675 | "rimraf": "^2.6.1", 676 | "ws": "^6.1.0" 677 | } 678 | }, 679 | "puppeteer-extra": { 680 | "version": "3.1.9", 681 | "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.1.9.tgz", 682 | "integrity": "sha512-hxyQnlZLLaA2fh6oObs2jkzAcGW6UEnPf9geEbX/UkLqp3LysouC3UDbCA2a1K4d1N73AD0afNgnADr62JBIcA==", 683 | "requires": { 684 | "@types/debug": "^4.1.0", 685 | "@types/puppeteer": "*", 686 | "debug": "^4.1.1", 687 | "deepmerge": "^4.2.2" 688 | } 689 | }, 690 | "puppeteer-extra-plugin": { 691 | "version": "3.1.4", 692 | "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin/-/puppeteer-extra-plugin-3.1.4.tgz", 693 | "integrity": "sha512-RXRearBnR9lbrwnnOpTdXvdRi/+tUYcrZp957+Pwnw7vyrUb4l8WNRO8VSC4lkX8RYYqbPg3aAQGWZlBX6bmQA==", 694 | "requires": { 695 | "@types/debug": "^4.1.0", 696 | "debug": "^4.1.1", 697 | "merge-deep": "^3.0.1" 698 | } 699 | }, 700 | "puppeteer-extra-plugin-stealth": { 701 | "version": "2.4.9", 702 | "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-stealth/-/puppeteer-extra-plugin-stealth-2.4.9.tgz", 703 | "integrity": "sha512-KAu/fKjcsl1LwVZNynQvG8870JG7Wr4JbPkitV9qsL4U/KHuN855+Nt/yfbQwdVL33nFp1AUK2y4y9XW8SFRFQ==", 704 | "requires": { 705 | "debug": "^4.1.1", 706 | "puppeteer-extra-plugin": "^3.1.4" 707 | } 708 | }, 709 | "readable-stream": { 710 | "version": "3.6.0", 711 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 712 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 713 | "requires": { 714 | "inherits": "^2.0.3", 715 | "string_decoder": "^1.1.1", 716 | "util-deprecate": "^1.0.1" 717 | } 718 | }, 719 | "require-directory": { 720 | "version": "2.1.1", 721 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 722 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 723 | }, 724 | "require-main-filename": { 725 | "version": "2.0.0", 726 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 727 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" 728 | }, 729 | "rimraf": { 730 | "version": "2.7.1", 731 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 732 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 733 | "requires": { 734 | "glob": "^7.1.3" 735 | } 736 | }, 737 | "safe-buffer": { 738 | "version": "5.2.0", 739 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", 740 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" 741 | }, 742 | "set-blocking": { 743 | "version": "2.0.0", 744 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 745 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 746 | }, 747 | "shallow-clone": { 748 | "version": "0.1.2", 749 | "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", 750 | "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", 751 | "requires": { 752 | "is-extendable": "^0.1.1", 753 | "kind-of": "^2.0.1", 754 | "lazy-cache": "^0.2.3", 755 | "mixin-object": "^2.0.1" 756 | }, 757 | "dependencies": { 758 | "kind-of": { 759 | "version": "2.0.1", 760 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", 761 | "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", 762 | "requires": { 763 | "is-buffer": "^1.0.2" 764 | } 765 | }, 766 | "lazy-cache": { 767 | "version": "0.2.7", 768 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", 769 | "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" 770 | } 771 | } 772 | }, 773 | "sorted-array-functions": { 774 | "version": "1.2.0", 775 | "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.2.0.tgz", 776 | "integrity": "sha512-sWpjPhIZJtqO77GN+LD8dDsDKcWZ9GCOJNqKzi1tvtjGIzwfoyuRH8S0psunmc6Z5P+qfDqztSbwYR5X/e1UTg==" 777 | }, 778 | "string-width": { 779 | "version": "4.2.0", 780 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 781 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 782 | "requires": { 783 | "emoji-regex": "^8.0.0", 784 | "is-fullwidth-code-point": "^3.0.0", 785 | "strip-ansi": "^6.0.0" 786 | } 787 | }, 788 | "string_decoder": { 789 | "version": "1.3.0", 790 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 791 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 792 | "requires": { 793 | "safe-buffer": "~5.2.0" 794 | } 795 | }, 796 | "strip-ansi": { 797 | "version": "6.0.0", 798 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 799 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 800 | "requires": { 801 | "ansi-regex": "^5.0.0" 802 | } 803 | }, 804 | "supports-color": { 805 | "version": "7.1.0", 806 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", 807 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", 808 | "requires": { 809 | "has-flag": "^4.0.0" 810 | } 811 | }, 812 | "typedarray": { 813 | "version": "0.0.6", 814 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 815 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" 816 | }, 817 | "util-deprecate": { 818 | "version": "1.0.2", 819 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 820 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 821 | }, 822 | "which-module": { 823 | "version": "2.0.0", 824 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 825 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" 826 | }, 827 | "wrap-ansi": { 828 | "version": "6.2.0", 829 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", 830 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 831 | "requires": { 832 | "ansi-styles": "^4.0.0", 833 | "string-width": "^4.1.0", 834 | "strip-ansi": "^6.0.0" 835 | } 836 | }, 837 | "wrappy": { 838 | "version": "1.0.2", 839 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 840 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 841 | }, 842 | "ws": { 843 | "version": "6.2.1", 844 | "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", 845 | "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", 846 | "requires": { 847 | "async-limiter": "~1.0.0" 848 | } 849 | }, 850 | "y18n": { 851 | "version": "4.0.0", 852 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 853 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" 854 | }, 855 | "yargs": { 856 | "version": "15.3.1", 857 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", 858 | "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", 859 | "requires": { 860 | "cliui": "^6.0.0", 861 | "decamelize": "^1.2.0", 862 | "find-up": "^4.1.0", 863 | "get-caller-file": "^2.0.1", 864 | "require-directory": "^2.1.1", 865 | "require-main-filename": "^2.0.0", 866 | "set-blocking": "^2.0.0", 867 | "string-width": "^4.2.0", 868 | "which-module": "^2.0.0", 869 | "y18n": "^4.0.0", 870 | "yargs-parser": "^18.1.1" 871 | } 872 | }, 873 | "yargs-parser": { 874 | "version": "18.1.3", 875 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", 876 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", 877 | "requires": { 878 | "camelcase": "^5.0.0", 879 | "decamelize": "^1.2.0" 880 | } 881 | }, 882 | "yauzl": { 883 | "version": "2.10.0", 884 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 885 | "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", 886 | "requires": { 887 | "buffer-crc32": "~0.2.3", 888 | "fd-slicer": "~1.1.0" 889 | } 890 | } 891 | } 892 | } 893 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "version1", 3 | "version": "1.0.0", 4 | "description": "Testing Scraping", 5 | "main": "index.js", 6 | "scripts": { 7 | "scrape": "node src/index.js" 8 | }, 9 | "author": "kihapper", 10 | "license": "ISC", 11 | "dependencies": { 12 | "chalk": "^3.0.0", 13 | "cheerio": "^1.0.0-rc.3", 14 | "node-schedule": "^1.3.2", 15 | "puppeteer": "^2.1.1", 16 | "puppeteer-extra": "^3.1.9", 17 | "puppeteer-extra-plugin-stealth": "^2.4.9", 18 | "yargs": "^15.3.1" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const theirtube = require('./theirtube.js'); 2 | const schedule = require('node-schedule'); 3 | const argv = require('yargs').argv; 4 | const chalk = require('chalk'); 5 | 6 | let minute; 7 | let hour; 8 | let iterationAmmount; 9 | let iterationCount = -1; 10 | 11 | //npm run scrape -- --scrapeMinute=03 --scrapeHour=17 12 | if ( (argv.scrapeMinute != null) && (argv.scrapeHour != null)) { 13 | minute = argv.scrapeMinute; 14 | hour = argv.scrapeHour; 15 | console.log(chalk.black.bgYellowBright("Theirtube Scraping Everyday at — " + hour + ":" + minute + '\n')); 16 | } else { 17 | minute = "00"; 18 | hour = "12"; 19 | console.log(chalk.black.bgYellowBright("Time not set : Theirtube Scraping Everyday at — " + hour + ":" + minute + '\n')); 20 | } 21 | 22 | 23 | //Using the acount below can switch between several accounts. 24 | //make sure to start each account you want to get data with the number below 25 | const persona_list = { 26 | persona1: 1, 27 | persona2: 2, 28 | persona3: 3, 29 | // persona4: 4, 30 | // persona5: 5, 31 | // persona6: 6, 32 | } 33 | const persona_array = Object.entries(persona_list); 34 | 35 | //For more reference : https://www.npmjs.com/package/node-schedule 36 | let schedulebot = schedule.scheduleJob(minute+" "+hour+" * * *", function(){ 37 | iterationCount++; 38 | console.log("This is iteration count : " + iterationCount); 39 | scrapeAll(); 40 | 41 | if(iterationCount > iterationAmmount){ 42 | schedulebot.cancel(); 43 | } 44 | }) 45 | 46 | 47 | async function scrapeAll() { 48 | //initialise when activating for the first time. 49 | if(iterationCount==0){ 50 | await theirtube.initialize();} 51 | 52 | for (const persona of persona_array) { 53 | console.log("scraping from :" + persona[0]); 54 | await theirtube.switchAccount(persona); 55 | await theirtube.scrape(persona); 56 | } 57 | } -------------------------------------------------------------------------------- /src/theirtube.js: -------------------------------------------------------------------------------- 1 | const puppeteer = require('puppeteer-extra'); 2 | const fs = require('fs'); 3 | const path = require('path'); 4 | const StealthPlugin = require('puppeteer-extra-plugin-stealth'); 5 | const chalk = require('chalk'); 6 | const BASE_URL = 'https://www.youtube.com/'; 7 | //directory of cookie where the puppeteer will look for. 8 | const COOKIE_PATH = path.join(__dirname, '../cookies/curator1_cookie'); 9 | //path to where the scraped data goes 10 | const JSON_PATH = path.join(__dirname, '/video_data_scraped.json'); 11 | 12 | puppeteer.use(StealthPlugin()); 13 | 14 | //this iteration_num decides how many numbers of videos to scrape 15 | //Use 8 to scrape all the top page results 16 | let iteration_num = 8; 17 | let browser = null; 18 | let page = null; 19 | 20 | const theirtube = { 21 | 22 | initialize: async () => { 23 | 24 | browser = await puppeteer.launch({ 25 | userDataDir: COOKIE_PATH, 26 | headless: false, 27 | devtools: false, 28 | args: [ 29 | '--no-sandbox', 30 | '--disable-setuid-sandbox', 31 | '--disable-gpu' 32 | ] 33 | }); 34 | 35 | page = await browser.newPage(); 36 | 37 | await page.setViewport({ 38 | width: 1200, 39 | height: 1000, 40 | }); 41 | 42 | console.log(await browser.userAgent()); 43 | await page.goto(BASE_URL); 44 | console.log(chalk.black.bgCyanBright(' Initialized, Going to —>" + BASE_URL')); 45 | 46 | }, 47 | 48 | login: async (username, password) => { 49 | 50 | //Go to sign in button 51 | await page.waitFor('paper-button[aria-label="Sign in"]'); 52 | console.log("Waitng for Sign-In button becomes clickable"); 53 | await page.click('paper-button[aria-label="Sign in"]'); 54 | 55 | //Typing in the users name 56 | await page.waitFor(500); 57 | await page.waitForSelector('#identifierId'); 58 | await page.type('#identifierId', username, { delay: 70 }); 59 | console.log('Typing in the users name...'); 60 | 61 | //Clicking the Next button 62 | await page.waitFor(500); 63 | await page.waitForSelector('#identifierNext'); 64 | await page.click('#identifierNext'); 65 | console.log('Clicking the Next button...'); 66 | 67 | //Type in the password, wait 2 seconds since form take while to load 68 | console.log('Typing in the password...'); 69 | await page.waitFor(2500); 70 | await page.waitForSelector('#password'); 71 | await page.type('#password', password, { delay: 80 }); 72 | 73 | //Sending the Password 74 | await page.waitFor(500); 75 | await page.waitForSelector('#passwordNext'); 76 | await page.click('#passwordNext'); 77 | console.log('🖱 :Clicking the Send password button...'); 78 | }, 79 | 80 | switchAccount: async (accountNum) => { 81 | 82 | //This function gets an array with the name and the number of the persona. ex: conspiracist - 1 83 | console.log("🤓 Switching Account" + accountNum[0] + ":" + accountNum[1]); 84 | accountNum = accountNum[1] 85 | 86 | //Clicking the Top Left Account button 87 | await page.waitForSelector('#avatar-btn'); 88 | await page.click('#avatar-btn'); 89 | console.log('🖱 : Top left Icon clicked'); 90 | await page.waitFor(2000); 91 | 92 | 93 | //page.evaluate() moves the context within the browser, so output will be inside the browser 94 | await page.evaluate(() => { 95 | //gets first the whole menu div with contentwrapper, then get the top 5 96 | let dropMenuAll = document.querySelector('#contentWrapper'); 97 | dropMenuAll = dropMenuAll.querySelector('#items'); 98 | dropMenuAll = dropMenuAll.querySelectorAll('ytd-compact-link-renderer'); 99 | 100 | //This Array method transforms NodeList element into Array element. More on that 101 | const dropMenuArray = Array.from(dropMenuAll); 102 | 103 | //find is a function that lets you get the first element within an array 104 | dropMenuArray.find(menu => menu.innerText === 'Switch account').click(); 105 | 106 | }); 107 | console.log("🖱 : [Switch Account] clicked"); 108 | //It needs 500ms wait for it to execute properly 109 | await page.waitFor(2000); 110 | 111 | await page.evaluate((accountNum) => { 112 | 113 | console.log(accountNum); 114 | 115 | //Moves on to the bot selection part... 116 | //This endless array of selection is to get through the endless div layers 117 | let channelMenu = document.querySelector('#submenu'); 118 | channelMenu = channelMenu.querySelector('#container') 119 | channelMenu = channelMenu.querySelector('#sections') 120 | channelMenu = channelMenu.querySelector('#contents') 121 | channelMenu = channelMenu.querySelector('#contents') 122 | channelMenu = channelMenu.querySelectorAll('ytd-account-item-renderer') 123 | 124 | 125 | //Starts with returns the array with the initial text matching the accountNum, which is a number 126 | const channelMenuArray = Array.from(channelMenu) 127 | let selectedBot = channelMenuArray.find(channels => channels.innerText.startsWith(String(accountNum))); 128 | console.log("Selecting..." + selectedBot.innerText); 129 | selectedBot.click(); 130 | },accountNum); 131 | console.log("🖱 : Account icon clicked" + '\n'); 132 | await page.waitFor(1100); 133 | 134 | }, 135 | 136 | scrape: async (accountName) => { 137 | //This gets an array with the name of the persona[0] is the name lable conspiracist. 138 | accountName = accountName[0]; 139 | 140 | await page.waitFor("#content"); 141 | console.log("🔨 Scraper Starting for : " + accountName + " ——— waiting 5 seconds " + '\n'); 142 | await page.waitFor(5000); 143 | 144 | //——Making screenshot of each file 145 | 146 | //generating DD-MM-YY sequence name for the folder. 147 | let today = new Date(); 148 | today = today.toISOString().substring(0, 10); 149 | 150 | //checking if the DD-MM-YY folder exists, and if not make one. 151 | let screenshot_dir = path.join(__dirname, `../screenshot/${today}`); 152 | if (!fs.existsSync(screenshot_dir)){ 153 | fs.mkdirSync(screenshot_dir); 154 | } 155 | 156 | //make a photo based on the iteraction count 157 | let SCREENSHOT_PATH = path.join(__dirname, `../screenshot/${today}/${today}${accountName}.jpg`); 158 | await page.screenshot({ path: SCREENSHOT_PATH }); 159 | 160 | //$$ works exactly as a document.querySelectorAll() would in the browser console 161 | let videoArray = await page.$$('#content > .ytd-rich-item-renderer'); 162 | let videos = []; 163 | let iteration = 0; 164 | 165 | for (let videoElement of videoArray) { 166 | 167 | var video = {}; 168 | let youtube_url = "https://www.youtube.com"; 169 | 170 | try{ 171 | //.getAttribute gets elements within the class in HTML 172 | video.title = await videoElement.$eval('#video-title', element => element.innerText); 173 | video.url = await videoElement.$eval('h3[class="style-scope ytd-rich-grid-video-renderer"] a[class="yt-simple-endpoint style-scope ytd-rich-grid-video-renderer"]', element => element.getAttribute('href')); 174 | video.url = youtube_url.concat(video.url); 175 | video.channel = await videoElement.$eval('a[class="yt-simple-endpoint style-scope yt-formatted-string"]', element => element.innerText); 176 | video.channel_url = await videoElement.$eval('a[class="yt-simple-endpoint style-scope yt-formatted-string"]', element => element.getAttribute('href')); 177 | video.channel_url = youtube_url.concat(video.channel_url); 178 | video.channel_icon = await videoElement.$eval('a[class="yt-simple-endpoint style-scope ytd-rich-grid-video-renderer"] img[class="style-scope yt-img-shadow"]', element => element.getAttribute('src')); 179 | video.thumbnail = await videoElement.$eval('img[class="style-scope yt-img-shadow"]', element => element.getAttribute('src')); 180 | video.viewnum = await videoElement.$eval('span[class="style-scope ytd-video-meta-block"]', element => element.innerText); 181 | video.date = await videoElement.$eval('div[class="style-scope ytd-video-meta-block"]', element => element.innerText); 182 | video.date = video.date.split("\n")[2]; 183 | videos.push(video); 184 | console.log(video.title); 185 | } 186 | catch(e){ 187 | console.log("‼️ Error occured during scraping" + e); 188 | return e 189 | } 190 | 191 | //Decides how many time it loops through, definetely a better way to write this. 192 | iteration++ 193 | if (iteration == iteration_num) { 194 | iteration = 0; 195 | break; 196 | } 197 | } 198 | 199 | //Reading the JSON files and converting them into JSON format 200 | const dataBuffer = fs.readFileSync(JSON_PATH); 201 | const dataJson = dataBuffer.toString(); 202 | const data = JSON.parse(dataJson); 203 | 204 | //add json object to add videos to later 205 | const video_template = { date: "", month: "", day: "", year: "", id:accountName, videos: [] } 206 | data[accountName].video_array.unshift(video_template); 207 | 208 | //Adding date to the date category 209 | let dateobject = new Date(); 210 | 211 | data[accountName].video_array[0].date = Date(); 212 | data[accountName].video_array[0].month = dateobject.getMonth() + 1; 213 | data[accountName].video_array[0].day = dateobject.getDate(); 214 | data[accountName].video_array[0].year = dateobject.getFullYear(); 215 | data[accountName].video_array[0].videos = videos; 216 | 217 | //write files to the system 218 | fs.writeFile(JSON_PATH, JSON.stringify(data), (err) => { 219 | if (err) { 220 | console.error(err);} 221 | else{ 222 | console.log(chalk.black.bgYellowBright('💾 The file has been saved!' + '\n')); 223 | } 224 | }); 225 | 226 | 227 | }, 228 | 229 | readfile: async () => { 230 | const dataBuffer = fs.readFileSync(JSON_PATH); 231 | const dataJson = dataBuffer.toString(); 232 | const data = JSON.parse(dataJson); 233 | console.log(data[1].url); 234 | debugger; 235 | 236 | }, 237 | 238 | end: async () => { 239 | await browser.close(); 240 | } 241 | 242 | } 243 | 244 | module.exports = theirtube; 245 | -------------------------------------------------------------------------------- /src/video_data_scraped.json: -------------------------------------------------------------------------------- 1 | { 2 | "persona1": { 3 | "video_array": [ 4 | ] 5 | }, 6 | "persona2": { 7 | "video_array": [ 8 | ] 9 | }, 10 | "persona3": { 11 | "video_array": [ 12 | ] 13 | }, 14 | "persona4": { 15 | "video_array": [ 16 | ] 17 | }, 18 | "persona5": { 19 | "video_array": [ 20 | ] 21 | }, 22 | "persona6": { 23 | "video_array": [ 24 | ] 25 | } 26 | } -------------------------------------------------------------------------------- /src/video_data_template.json: -------------------------------------------------------------------------------- 1 | { 2 | "persona1": { 3 | "video_array": [ 4 | ] 5 | }, 6 | "persona2": { 7 | "video_array": [ 8 | ] 9 | }, 10 | "persona3": { 11 | "video_array": [ 12 | ] 13 | }, 14 | "persona4": { 15 | "video_array": [ 16 | ] 17 | }, 18 | "persona5": { 19 | "video_array": [ 20 | ] 21 | }, 22 | "persona6": { 23 | "video_array": [ 24 | ] 25 | } 26 | } --------------------------------------------------------------------------------