├── .gitignore ├── README.md ├── data ├── Instagram.json ├── YTSMovies.json ├── ebay │ ├── Deals.json │ └── Products.json └── google │ └── PlayStore.json ├── mss ├── __init__.py ├── items.py ├── pipelines.py ├── settings.py ├── spiders │ ├── __init__.py │ ├── ebay │ │ ├── __init__.py │ │ ├── deals.py │ │ └── products.py │ ├── facebook │ │ ├── __init__.py │ │ ├── login.py │ │ └── profile.py │ ├── google │ │ ├── __init__.py │ │ └── playstore.py │ ├── instagram.py │ └── yts.py └── utils │ ├── __init__.py │ └── strings.py ├── requirements.txt └── scrapy.cfg /.gitignore: -------------------------------------------------------------------------------- 1 | # Git 2 | .* 3 | !/.gitignore 4 | 5 | # Project Specific 6 | *.egg-*/ 7 | *.sublime-* 8 | *.pyc 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Major Scrapy Spiders 2 | ==================== 3 | Scrapy spiders of major websites. Play Store, Facebook, Instagram, Ebay, YTS Movies, Amazon 4 | 5 | Installation 6 | ------------ 7 | git clone https://github.com/talhashraf/major-scrapy-spiders mss 8 | 9 | Requirements 10 | ------------ 11 | cd mss 12 | pip install -r requirements.txt 13 | 14 | Usage 15 | ----- 16 | scrapy crawl 17 | 18 | List of Spiders 19 | --------------- 20 | * [Google Play (or Play Store)](https://play.google.com/store/apps) 21 | * [Facebook](https://www.facebook.com/) 22 | * [Instagram](http://instagram.com/) 23 | * [Ebay Deals](http://www.ebay.com/deals/) 24 | * [Ebay Products](https://www.ebay.com/sch/i.html?_nkw=all+categories&_sac=1#seeAllAnchorLink) 25 | * [YTS Movies](https://yts.ag/browse-movies) 26 | -------------------------------------------------------------------------------- /data/Instagram.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "show_app_install": true, 4 | "entry_data": { 5 | "ProfilePage": [ 6 | { 7 | "logging_page_id": "profilePage_13460080", 8 | "user": { 9 | "username": "nike", 10 | "requested_by_viewer": false, 11 | "connected_fb_page": null, 12 | "follows": { 13 | "count": 136 14 | }, 15 | "id": "13460080", 16 | "followed_by": { 17 | "count": 73366217 18 | }, 19 | "external_url_linkshimmed": "https://l.instagram.com/?u=https%3A%2F%2Fswoo.sh%2F2uPLlw0&e=ATMEBpRaiDpjF6qrTrREjhf8dooEM7vvekboD4i7J_Dfu_UQo84G8wq2F434-Us", 20 | "has_requested_viewer": false, 21 | "country_block": false, 22 | "follows_viewer": false, 23 | "profile_pic_url_hd": "https://ig-s-c-a.akamaihd.net/h-ak-igx/t51.2885-19/s320x320/17126848_1779368432381854_3589478532054515712_a.jpg", 24 | "profile_pic_url": "https://ig-s-c-a.akamaihd.net/h-ak-igx/t51.2885-19/s150x150/17126848_1779368432381854_3589478532054515712_a.jpg", 25 | "is_private": false, 26 | "full_name": "nike", 27 | "media": { 28 | "count": 904, 29 | "page_info": { 30 | "end_cursor": "AQCVj5HzxNOPU9vkFV1GZysYHiCt-5f0Af93Vizll4s34l3fOS0b9KT8GjlTy4DcBg2hr_IESqYz35ia8uOialOahmRgPvo1GVZaTsW0-pfJIA", 31 | "has_next_page": true 32 | }, 33 | "nodes": [ 34 | { 35 | "code": "BWnKo0gAQ-D", 36 | "gating_info": null, 37 | "dimensions": { 38 | "width": 750, 39 | "height": 422 40 | }, 41 | "caption": "You don’t play @rogerfederer on grass. You play on his grass. #JustDoIt", 42 | "thumbnail_resources": [], 43 | "comments_disabled": false, 44 | "__typename": "GraphVideo", 45 | "comments": { 46 | "count": 738 47 | }, 48 | "date": 1500217815, 49 | "media_preview": "ACoXwfLIpfKb0rXK5ODjp6H8O3X+dHlkkkDkHPB/P2oHYxzGQcHqO1IUI4PFdRLmaNWONyjn1/lzj+tUDAF69P5n+vPHvTCxi7TRtNaxt1HPGSemOP06U77OD/D+tAWJ2V+Tghs5+9xx6+vvTFWRc5GCecqR+A5zwD+dFFTcm4PA7KTyQCBjIzg/kMevenL5mOmD+H+PWiilew7hscE8D1znv9P880mZOwX8/wD61FFLmYXP/9k=", 50 | "likes": { 51 | "count": 214389 52 | }, 53 | "owner": { 54 | "id": "13460080" 55 | }, 56 | "thumbnail_src": "https://ig-s-d-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/c157.0.406.406/19985463_1592640420806911_8092886633948381184_n.jpg", 57 | "is_video": true, 58 | "id": "1560262581522861955", 59 | "display_src": "https://ig-s-d-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/19985463_1592640420806911_8092886633948381184_n.jpg", 60 | "video_views": 1094306 61 | }, 62 | { 63 | "code": "BWc3PXyAmlD", 64 | "gating_info": null, 65 | "dimensions": { 66 | "width": 1080, 67 | "height": 1080 68 | }, 69 | "caption": "The Bra That Changes Everything.\nIntroducing the Nike FE/NOM Flyknit Bra. The first-ever sports bra with Nike Flyknit technology. It's incredibly supportive and impossibly light. \nHit the link in the bio to learn more.\n#nike #nikewomen #niketraining #flyknit", 70 | "thumbnail_resources": [], 71 | "comments_disabled": false, 72 | "__typename": "GraphSidecar", 73 | "comments": { 74 | "count": 747 75 | }, 76 | "date": 1499872101, 77 | "media_preview": null, 78 | "likes": { 79 | "count": 202248 80 | }, 81 | "owner": { 82 | "id": "13460080" 83 | }, 84 | "thumbnail_src": "https://ig-s-b-a.akamaihd.net/h-ak-igx/t51.2885-15/s640x640/sh0.08/e35/19933353_249232275565537_8245415985079648256_n.jpg", 85 | "is_video": false, 86 | "id": "1557362520048691523", 87 | "display_src": "https://ig-s-b-a.akamaihd.net/h-ak-igx/t51.2885-15/e35/19933353_249232275565537_8245415985079648256_n.jpg" 88 | }, 89 | { 90 | "code": "BWaYewggCqK", 91 | "gating_info": null, 92 | "dimensions": { 93 | "width": 750, 94 | "height": 422 95 | }, 96 | "caption": "Still KD: Through the Noise \nKevin Durant has been on a mission, focused from the age of nine. With unprecedented access to his life, we see the hard work and perseverance it takes to stay true to yourself and accomplish the ultimate dream.", 97 | "thumbnail_resources": [], 98 | "comments_disabled": false, 99 | "__typename": "GraphVideo", 100 | "comments": { 101 | "count": 922 102 | }, 103 | "date": 1499788865, 104 | "media_preview": "ACoXnV1PrT8LVc3kS9SPwqNr6AfxfkCadxcpaKg9K566nkEhUMcKcDHH6VpnUIezH/vmsu4ZGfKDg98dfencVrGkFJUFhgkDP1qPbUUc+5fmPPv3pfNHqPzp3JsZwjOdo78Zp7Qso3Hp2+lFFZN2sapXHNbvtL/wqASfY8Coz2oooi7jkrDTyBQImPNFFUSf/9k=", 105 | "likes": { 106 | "count": 194938 107 | }, 108 | "owner": { 109 | "id": "13460080" 110 | }, 111 | "thumbnail_src": "https://ig-s-a-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/c157.0.406.406/19985745_1510819445646812_1868445682977734656_n.jpg", 112 | "is_video": true, 113 | "id": "1556664287995374218", 114 | "display_src": "https://ig-s-a-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/19985745_1510819445646812_1868445682977734656_n.jpg", 115 | "video_views": 877472 116 | }, 117 | { 118 | "code": "BV8V1d3g6-M", 119 | "gating_info": null, 120 | "dimensions": { 121 | "width": 750, 122 | "height": 422 123 | }, 124 | "caption": "Winning is only one side of the story. Welcome to The Roger Effect. #InspirationUnmatched", 125 | "thumbnail_resources": [], 126 | "comments_disabled": false, 127 | "__typename": "GraphVideo", 128 | "comments": { 129 | "count": 1782 130 | }, 131 | "date": 1498780845, 132 | "media_preview": "ACoX50qfb86QA4z2owcVIoVSNwJyMjHrTAejSRjjIDD8xSmJ1xkEZ6Z704NH/db9KV2DfdDA+9AhvlPu24+b071LulXjJGOOtQfN1weKb83vQIsJg9c9AP0xUnlRHrk0UVQhwihHb9TTtkP939T/AI0UUCArD/d/nTdsP93+dFFAz//Z", 133 | "likes": { 134 | "count": 158131 135 | }, 136 | "owner": { 137 | "id": "13460080" 138 | }, 139 | "thumbnail_src": "https://ig-s-b-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/c157.0.406.406/19436432_452914335067853_2241278320631087104_n.jpg", 140 | "is_video": true, 141 | "id": "1548208405087498124", 142 | "display_src": "https://ig-s-b-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/19436432_452914335067853_2241278320631087104_n.jpg", 143 | "video_views": 835857 144 | }, 145 | { 146 | "code": "BV09UF_g5Th", 147 | "gating_info": null, 148 | "dimensions": { 149 | "width": 750, 150 | "height": 937 151 | }, 152 | "caption": "Why Not Zero?\n\nThe math adds up. @russwest44 is the 2017 NBA MVP.", 153 | "thumbnail_resources": [], 154 | "comments_disabled": false, 155 | "__typename": "GraphVideo", 156 | "comments": { 157 | "count": 1203 158 | }, 159 | "date": 1498533108, 160 | "media_preview": "ACEqw6Ks20AuH2Z28E5+lE8HkOVBzjp+P+FWmr8vXcT2uQk44Hbr9aTPr/hUZJFSNG8fLjiq1FovX8xNw96Kdv8AYflRT0/pC17fiWrSDzdxGQRgK2cAH3P+Rir+pRQhCdwEgIKj2ONy+6g5IPbpVfTZVRxG/wB1jnp3H9OP0rR1O381Cyj7vKnH4EeuD1z6isrO7v8AIu+isYEwXyoyCN3PHt6/iannminUKmQc5IPoB/nvVJk5x3HWnRJg5Pb+tadTPlWj7NtfMk+X0H60UlFWa2RHnnPeuhXUY22qcuSQoT+7nA5PfHQe1YYFEBxIhH95f5ioasQnf5G3qcLOxZMHYMvyMgYz064wM/481iE8f57dK6yRQXmyBzGuf/H640HiiL6FD91FQ5oouwP/2Q==", 161 | "likes": { 162 | "count": 293306 163 | }, 164 | "owner": { 165 | "id": "13460080" 166 | }, 167 | "thumbnail_src": "https://ig-s-b-a.akamaihd.net/h-ak-igx/t51.2885-15/s640x640/e15/c0.90.720.720/19429291_1391672034253081_6786510156923404288_n.jpg", 168 | "is_video": true, 169 | "id": "1546130233755931873", 170 | "display_src": "https://ig-s-b-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/19429291_1391672034253081_6786510156923404288_n.jpg", 171 | "video_views": 1467803 172 | }, 173 | { 174 | "code": "BVNE4GJAfil", 175 | "gating_info": null, 176 | "dimensions": { 177 | "width": 1080, 178 | "height": 607 179 | }, 180 | "caption": "One is difficult. Two is impressive. Ten is Rafa. @rafaelnadal", 181 | "thumbnail_resources": [], 182 | "comments_disabled": false, 183 | "__typename": "GraphVideo", 184 | "comments": { 185 | "count": 1322 186 | }, 187 | "date": 1497194896, 188 | "media_preview": "ACoXnSUW6lRhiKcwMkDS7iDjkgcj196zIZrTrK7k/T/CrLyxSxslszHd2IOc8dPaolovmio6shh05cgEtkgN0BJzjoemea6G2iVAVw2Mfx4Prx/n1rK84xiMbvl+UYAzkgjoe3/1qvC6jjVmfJByQQpwRj19Rz6VnGT6+d/6sXJdl6WKWoaT1kg+pX/D/CsDym9D+VbjaxGMBeR2Jqg2oDJ5/StzIpC3KcyDj69fyrQS5wu1FUAZ6ZHbHPPP40UUmr7j2ImvjxuAbbznp68nHXr/AF61Imo7WyACrDBGTjrk0UUuVb2HzPYzriIF8xjCt0Hoe4pfsMnt+dFFUSf/2Q==", 189 | "likes": { 190 | "count": 221396 191 | }, 192 | "owner": { 193 | "id": "13460080" 194 | }, 195 | "thumbnail_src": "https://ig-s-b-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/c236.0.607.607/18949925_281432695654089_6473148170481172480_n.jpg", 196 | "is_video": true, 197 | "id": "1534904495073523877", 198 | "display_src": "https://ig-s-b-a.akamaihd.net/h-ak-igx/t51.2885-15/s1080x1080/e15/fr/18949925_281432695654089_6473148170481172480_n.jpg", 199 | "video_views": 849764 200 | }, 201 | { 202 | "code": "BU5Ehrhgqq7", 203 | "gating_info": null, 204 | "dimensions": { 205 | "width": 1080, 206 | "height": 1350 207 | }, 208 | "caption": "Nobody believed a boy from Madeira would make it to the stars. Except the boy from Madeira. \n#nike #soccer #football #CR7 #Cristiano #CristianoRonaldo #Mercurial #justdoit", 209 | "thumbnail_resources": [], 210 | "comments_disabled": false, 211 | "__typename": "GraphImage", 212 | "comments": { 213 | "count": 4649 214 | }, 215 | "date": 1496523623, 216 | "media_preview": "ACEqSUFMtj5c9cYArNe8JB4AA/zzW9dSfu3jTnIxggfz/lWTbW8S4WQbmkAOOpGemad7EqJWS8yeea0gVKbsZJ+6cetV57WJg3lAo8YOQRwR35/lVpE2oqn+EY/xpp3CUbbEPNFS4HqKKoxsy75C+p/P/wCtUcsgi46bRxx/n+dUzebetVZrsSYKkgjrWTR0p2NhJ1f8eDx/+unmGM/xH9KwY7nZhmJJFWU1AEc8GhIcnc0fLT+9/Kis/wC1iiqMzEZyacuw/eznPbGP1IqKlpFEh2AcFs/hj+dM3UlFADt5optFMR//2Q==", 217 | "likes": { 218 | "count": 701094 219 | }, 220 | "owner": { 221 | "id": "13460080" 222 | }, 223 | "thumbnail_src": "https://ig-s-d-a.akamaihd.net/h-ak-igx/t51.2885-15/s640x640/sh0.08/e35/c0.135.1080.1080/18947783_1535758923163499_1096593425131634688_n.jpg", 224 | "is_video": false, 225 | "id": "1529273455130880699", 226 | "display_src": "https://ig-s-d-a.akamaihd.net/h-ak-igx/t51.2885-15/e35/18947783_1535758923163499_1096593425131634688_n.jpg" 227 | }, 228 | { 229 | "code": "BTvxgGEAn-p", 230 | "gating_info": null, 231 | "dimensions": { 232 | "width": 750, 233 | "height": 750 234 | }, 235 | "caption": "Eliud Kipchoge - 2:00:25\nThe barrier just got that much closer.\n#Breaking2 #JustDoIt", 236 | "thumbnail_resources": [], 237 | "comments_disabled": false, 238 | "__typename": "GraphVideo", 239 | "comments": { 240 | "count": 3017 241 | }, 242 | "date": 1494064175, 243 | "media_preview": "ACoqt/byQCMcfez/AEq9DMsq5HX0rlJJDtOzGMc+1XNMlCzAAlg4IyfXGaYNG9POsIyep6Csd715WKhsZHGOOfwqXVT9wggYyCD3z6VlRYaQYHr+VAI1EuniIyxYdCD9ffp7VtVzO1pZVjBwWPJ9FHX8TW+H2jAKgDgChagzmII08su4J3fKqg4znuT6D09arQhw4znCn9K0Qyy8tkH2NOkiSQYBK59MGkMpyNvBzg9wT1Ht9Kls4til26t0Ht/9ekFsA3Jyo7f4mpXf0oBCxjMmTwPX+lWce6/map20pI565q35p9aE2inbt+JirI5baOvT0H69KcxlTknH/Ah/Q1Ev3X/D/wBCqMn5APc/yFBNyz9rboealVnPzMCBjI9/TFZ1acn3V/3F/lSNaS5pa9NStDJtbFX99UcfNUtBcafNfXZn/9k=", 244 | "likes": { 245 | "count": 321386 246 | }, 247 | "owner": { 248 | "id": "13460080" 249 | }, 250 | "thumbnail_src": "https://ig-s-a-a.akamaihd.net/h-ak-igx/t51.2885-15/s640x640/e15/18380674_1840678496198968_334757937257906176_n.jpg", 251 | "is_video": true, 252 | "id": "1508642110004428713", 253 | "display_src": "https://ig-s-a-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/18380674_1840678496198968_334757937257906176_n.jpg", 254 | "video_views": 1318286 255 | }, 256 | { 257 | "code": "BTvj_-gg6B6", 258 | "gating_info": null, 259 | "dimensions": { 260 | "width": 1080, 261 | "height": 1080 262 | }, 263 | "caption": "Eliud Kipchoge - 2:00:25\nThe barrier just got that much closer.\n#Breaking2 #JustDoIt", 264 | "thumbnail_resources": [], 265 | "comments_disabled": false, 266 | "__typename": "GraphImage", 267 | "comments": { 268 | "count": 2640 269 | }, 270 | "date": 1494057096, 271 | "media_preview": "ACoq1c8Z3fyH9Khl8l8LKcjORk9COcgjpWJ5TtkfLkeue/PrSAZOAydcZx0P1x9OKYEnEZYKQQR1PIU9sjnJqIs4UeZwwPHTkY9qbt3HaSOOw/zzUsnzADO3BPWovrY2UE4uV9rf1+JqHUY0X1PYAED+VL/aEX+1/wB8mspoTtz5mf8AP1oEK/8APUfn/wDXqjAn/dI3yK4PrtI/T/69ReXGxwB19QQM/iMVpksOp2/UnP5daa0mBwC57AnAP+A/P6VL1N1NrojJu4AhLDI+QYwM/NnnkdBjvUcMqyLiTGV7n0q7JFNPneVjU9lGT+dDAwyI2Sdx2tkDHtxjj+dAKVnf8HqmQFo8YBGMHrWkkNltHK9B3pxP0/If4U3I9vyFJKwSm5eXoRY75pDmiimZiZNMlBkXaOvBGfUdKf3oHNAErZUZyG9cHkH3FM3n/JqIABuKWgD/2Q==", 272 | "likes": { 273 | "count": 508336 274 | }, 275 | "owner": { 276 | "id": "13460080" 277 | }, 278 | "thumbnail_src": "https://ig-s-a-a.akamaihd.net/h-ak-igx/t51.2885-15/s640x640/sh0.08/e35/18299402_128309274385168_1749644873230712832_n.jpg", 279 | "is_video": false, 280 | "id": "1508582728264818810", 281 | "display_src": "https://ig-s-a-a.akamaihd.net/h-ak-igx/t51.2885-15/e35/18299402_128309274385168_1749644873230712832_n.jpg" 282 | }, 283 | { 284 | "code": "BTvD2y3A9aj", 285 | "gating_info": null, 286 | "dimensions": { 287 | "width": 1080, 288 | "height": 1080 289 | }, 290 | "caption": "We believe barriers are meant to be broken – even one as crazy as running a marathon under 2 hours. Can it be done? It’s a good day to find out. #Breaking2 #JustDoIt\n\nWatch live at nike.com/justdoit.", 291 | "thumbnail_resources": [], 292 | "comments_disabled": false, 293 | "__typename": "GraphImage", 294 | "comments": { 295 | "count": 827 296 | }, 297 | "date": 1494040244, 298 | "media_preview": "ACoq2gtIyVL9KMUNXKi7FRhioWFXWTNV2Ssze6ZUamVZMZqPy6dxEFtfq8vU8gAZ6Z9/QdTW6Oa4ONipBrcj1WXHQGqMNzfNQs+OgrDfU5ycjAHp2qA39x6jpjoKNRq3U2muFHXj8c0wsPeubeSVup6c9qPtMv8AeNA722/QAR6U7dUdFMRIWppam0ygBxam7qSmUAf/2Q==", 299 | "likes": { 300 | "count": 467581 301 | }, 302 | "owner": { 303 | "id": "13460080" 304 | }, 305 | "thumbnail_src": "https://ig-s-d-a.akamaihd.net/h-ak-igx/t51.2885-15/s640x640/sh0.08/e35/18299226_290746458043023_1345715396749033472_n.jpg", 306 | "is_video": false, 307 | "id": "1508441359793772195", 308 | "display_src": "https://ig-s-d-a.akamaihd.net/h-ak-igx/t51.2885-15/e35/18299226_290746458043023_1345715396749033472_n.jpg" 309 | }, 310 | { 311 | "code": "BTskSHCAbKz", 312 | "gating_info": null, 313 | "dimensions": { 314 | "width": 750, 315 | "height": 750 316 | }, 317 | "caption": "Breaking the 2-hour marathon. Crazy? Yes. So we’re doing it. Check out our story to learn more about this moonshot attempt. #Breaking2 #JustDoIt", 318 | "thumbnail_resources": [], 319 | "comments_disabled": false, 320 | "__typename": "GraphVideo", 321 | "comments": { 322 | "count": 969 323 | }, 324 | "date": 1493956582, 325 | "media_preview": "ACoqs72zjb+v/wBalDsTjb+tG1+yj/vr/wCtS7X/ALoH4/8A1qskQSOTjb+tODueAo/OopnaFfMYAKMDgk9Tx2qfbJ6KPxP+FIBA7n+EfnSea3oPzpzB1G47FUDnkgY+uOKpHVIxxxx6BsfyoAtCdfUfnThOh7jrjrXOkZHPT3puFHQfzquUnmLeqXBdwqN8oHIB79f04q3a6ogQLLuLDqeueeP061hyLk8cU9VAHPWlboVfqW7yb7SSS5IHRcYH+fc81VCR9936UuBS4+n507E3E2t6Gl2N6H8qj3H1NLuPqaokf5bHnHt+f9KNjDjHIpmSaMmgB2DSYpWNMyaYH//Z", 326 | "likes": { 327 | "count": 320908 328 | }, 329 | "owner": { 330 | "id": "13460080" 331 | }, 332 | "thumbnail_src": "https://ig-s-d-a.akamaihd.net/h-ak-igx/t51.2885-15/s640x640/e15/18251893_1770698309908587_7320474707503874048_n.jpg", 333 | "is_video": true, 334 | "id": "1507739549437113011", 335 | "display_src": "https://ig-s-d-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/18251893_1770698309908587_7320474707503874048_n.jpg", 336 | "video_views": 1186269 337 | }, 338 | { 339 | "code": "BSrr-c0A7rT", 340 | "gating_info": null, 341 | "dimensions": { 342 | "width": 750, 343 | "height": 937 344 | }, 345 | "caption": "Triple-double record? #WhyNot? @russwest44", 346 | "thumbnail_resources": [], 347 | "comments_disabled": false, 348 | "__typename": "GraphVideo", 349 | "comments": { 350 | "count": 3175 351 | }, 352 | "date": 1491779577, 353 | "media_preview": "ACEqy2bcAeNxHYAZ9M4wKaIyq7jgk44Pb61ZjRQSzcAjbgcEDvj+lXhY7SQzDGPlOefxH0p+nzH6mGOMqcHP5DP+e1NZBzt7AZz645qeaLY2zkcZ+v09qFBSPc2QT6jqP8/pQNK+hTzRTst6fpRVXXYmxpNcGZ1JA2lgB9AeK2ViAI4yCfmz2HqK5lJPu+zDj+ufWusQDYCfQUILmXt87KN8skXr/d/w7j059ahMDOCR/CfXGR6ilvV8iYun8Q3D+v6j9aa1yTGWHBIz9awm5J+7/WpasVfL9v8Ax6ineav90fn/APWoqrvs/vQvuM8nGPautSVNnLAD6j61yBrXs+bSXPbP8hWhBd1F0ZFIO7DdR7g9+naudDHoc49M1rXHECgcD5f5VkDrR1HfSxJk0VHmigR//9k=", 354 | "likes": { 355 | "count": 363974 356 | }, 357 | "owner": { 358 | "id": "13460080" 359 | }, 360 | "thumbnail_src": "https://ig-s-c-a.akamaihd.net/h-ak-igx/t51.2885-15/s640x640/e15/c0.90.720.720/17663470_1516851874993838_1783146464248070144_n.jpg", 361 | "is_video": true, 362 | "id": "1489477509321046739", 363 | "display_src": "https://ig-s-c-a.akamaihd.net/h-ak-igx/t51.2885-15/e15/17663470_1516851874993838_1783146464248070144_n.jpg", 364 | "video_views": 1736037 365 | } 366 | ] 367 | }, 368 | "blocked_by_viewer": false, 369 | "followed_by_viewer": false, 370 | "is_verified": true, 371 | "has_blocked_viewer": false, 372 | "biography": "Just Do It.", 373 | "external_url": "https://swoo.sh/2uPLlw0" 374 | } 375 | } 376 | ] 377 | }, 378 | "activity_counts": null, 379 | "hostname": "www.instagram.com", 380 | "probably_has_app": false, 381 | "platform": "web", 382 | "qe": { 383 | "ebd": { 384 | "p": {}, 385 | "g": "" 386 | }, 387 | "feed": { 388 | "p": {}, 389 | "g": "" 390 | }, 391 | "deact": { 392 | "p": {}, 393 | "g": "" 394 | }, 395 | "typeahead": { 396 | "p": {}, 397 | "g": "" 398 | }, 399 | "disc": { 400 | "p": {}, 401 | "g": "" 402 | }, 403 | "video": { 404 | "p": {}, 405 | "g": "" 406 | }, 407 | "filters": { 408 | "p": {}, 409 | "g": "" 410 | }, 411 | "sidecar": { 412 | "p": {}, 413 | "g": "" 414 | }, 415 | "nav_lo": { 416 | "p": {}, 417 | "g": "" 418 | }, 419 | "nav": { 420 | "p": {}, 421 | "g": "" 422 | }, 423 | "create_upsell": { 424 | "p": {}, 425 | "g": "" 426 | }, 427 | "save": { 428 | "p": {}, 429 | "g": "" 430 | }, 431 | "profile": { 432 | "p": {}, 433 | "g": "" 434 | }, 435 | "profile_sensitivity": { 436 | "p": {}, 437 | "g": "" 438 | }, 439 | "appsell": { 440 | "p": {}, 441 | "g": "" 442 | }, 443 | "us_li": { 444 | "p": {}, 445 | "g": "" 446 | }, 447 | "bc3l": { 448 | "p": {}, 449 | "g": "" 450 | }, 451 | "location_tag": { 452 | "p": {}, 453 | "g": "" 454 | }, 455 | "su_universe": { 456 | "p": {}, 457 | "g": "" 458 | }, 459 | "ccp": { 460 | "p": {}, 461 | "g": "" 462 | }, 463 | "us": { 464 | "p": {}, 465 | "g": "" 466 | }, 467 | "delta_defaults": { 468 | "p": {}, 469 | "g": "" 470 | }, 471 | "pw_link": { 472 | "p": {}, 473 | "g": "" 474 | } 475 | }, 476 | "display_properties_server_guess": { 477 | "viewport_width": 360, 478 | "pixel_ratio": 1.5 479 | }, 480 | "country_code": "PK", 481 | "language_code": "en", 482 | "gatekeepers": { 483 | "bn": true, 484 | "ld": true, 485 | "pl": true 486 | }, 487 | "config": { 488 | "viewer": null, 489 | "csrf_token": "UQ0wmni3Bkth4yeUHAEa1icCQVp9TqyW" 490 | }, 491 | "environment_switcher_visible_server_guess": true 492 | } 493 | ] 494 | -------------------------------------------------------------------------------- /data/YTSMovies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "rating": { 4 | "Critics": "13%", 5 | "Audience": "25%", 6 | "imdb": 5.1, 7 | "likes": 1 8 | }, 9 | "genres": [ 10 | "Action", 11 | "Comedy", 12 | "Crime", 13 | "Thriller" 14 | ], 15 | "name": "Get the Girl", 16 | "cover": "https://yts.ag/assets/images/movies/get_the_girl_2017/medium-cover.jpg", 17 | "synopsis": "A wealthy young man is conned into staging a fake kidnapping in order to be a hero and win the affection of a girl he's madly in love with. But when one of the hired kidnappers is accidentally killed during the charade, he's forced to actually save her life while not revealing that it's been a ruse all along.", 18 | "similar_movies": [ 19 | { 20 | "url": "https://yts.ag/movie/get-a-job-2016", 21 | "year": 2016, 22 | "cover": "https://yts.ag/assets/images/movies/get_a_job_2016/medium-cover.jpg", 23 | "title": "Get a Job" 24 | }, 25 | { 26 | "url": "https://yts.ag/movie/kill-em-all-2013", 27 | "year": 2013, 28 | "cover": "https://yts.ag/assets/images/movies/Kill_em_All_2012/medium-cover.jpg", 29 | "title": "Kill 'em All" 30 | }, 31 | { 32 | "url": "https://yts.ag/movie/american-ninja-4-the-annihilation-1990", 33 | "year": 1990, 34 | "cover": "https://yts.ag/assets/images/movies/american_ninja_4_the_annihilation_1990/medium-cover.jpg", 35 | "title": "American Ninja 4: The Annihilation" 36 | }, 37 | { 38 | "url": "https://yts.ag/movie/speed-racer-2008", 39 | "year": 2008, 40 | "cover": "https://yts.ag/assets/images/movies/Speed_Racer_2008/medium-cover.jpg", 41 | "title": "Speed Racer" 42 | } 43 | ], 44 | "directors": [ 45 | { 46 | "url": "http://www.imdb.com/name/nm3146718/", 47 | "photo": "", 48 | "name": "Eric England" 49 | } 50 | ], 51 | "actors": [ 52 | { 53 | "url": "http://www.imdb.com/name/nm0174021/", 54 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0174021.jpg", 55 | "name": { 56 | "appeared_as": "Jade", 57 | "original": "Scout Taylor-Compton" 58 | } 59 | }, 60 | { 61 | "url": "http://www.imdb.com/name/nm0781913/", 62 | "photo": "", 63 | "name": { 64 | "appeared_as": "Patrick", 65 | "original": "Noah Segan" 66 | } 67 | }, 68 | { 69 | "url": "http://www.imdb.com/name/nm3021774/", 70 | "photo": "", 71 | "name": { 72 | "appeared_as": "KJ", 73 | "original": "Adi Shankar" 74 | } 75 | }, 76 | { 77 | "url": "http://www.imdb.com/name/nm2566469/", 78 | "photo": "", 79 | "name": { 80 | "appeared_as": "Carl", 81 | "original": "James Landry Hebert" 82 | } 83 | } 84 | ], 85 | "year": 2017, 86 | "download": { 87 | "links": { 88 | "url": "https://yts.ag/torrent/download/C22BCAF4939632ABDE8AF02829BF612083CB84BE", 89 | "quality": "1080p" 90 | } 91 | }, 92 | "screenshots": [ 93 | "https://yts.ag/assets/images/movies/get_the_girl_2017/large-screenshot1.jpg", 94 | "https://yts.ag/assets/images/movies/get_the_girl_2017/large-screenshot2.jpg", 95 | "https://yts.ag/assets/images/movies/get_the_girl_2017/large-screenshot3.jpg" 96 | ], 97 | "trailer": "https://www.youtube.com/embed/XlypFgK9TII?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 98 | }, 99 | { 100 | "rating": { 101 | "Critics": "50%", 102 | "Audience": "95%", 103 | "imdb": 5.9, 104 | "likes": 4 105 | }, 106 | "genres": [ 107 | "Drama", 108 | "History" 109 | ], 110 | "name": "The Promise", 111 | "cover": "https://yts.ag/assets/images/movies/the_promise_2016/medium-cover.jpg", 112 | "synopsis": "Set during the last days of the Ottoman Empire, The Promise follows a love triangle between Michael, a brilliant medical student, the beautiful and sophisticated Ana, and Chris - a renowned American journalist based in Paris.", 113 | "similar_movies": [ 114 | { 115 | "url": "https://yts.ag/movie/gut-2012", 116 | "year": 2012, 117 | "cover": "https://yts.ag/assets/images/movies/Gut_2012/medium-cover.jpg", 118 | "title": "Gut" 119 | }, 120 | { 121 | "url": "https://yts.ag/movie/small-town-saturday-night-2010", 122 | "year": 2010, 123 | "cover": "https://yts.ag/assets/images/movies/Small_Town_Saturday_Night_2010/medium-cover.jpg", 124 | "title": "Small Town Saturday Night" 125 | }, 126 | { 127 | "url": "https://yts.ag/movie/argo-2012", 128 | "year": 2012, 129 | "cover": "https://yts.ag/assets/images/movies/Argo_2012/medium-cover.jpg", 130 | "title": "Argo" 131 | }, 132 | { 133 | "url": "https://yts.ag/movie/hayride-2012", 134 | "year": 2012, 135 | "cover": "https://yts.ag/assets/images/movies/hayride_2012/medium-cover.jpg", 136 | "title": "Hayride" 137 | } 138 | ], 139 | "directors": [ 140 | { 141 | "url": "http://www.imdb.com/name/nm0313623/", 142 | "photo": "", 143 | "name": "Terry George" 144 | } 145 | ], 146 | "actors": [ 147 | { 148 | "url": "http://www.imdb.com/name/nm0000288/", 149 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000288.jpg", 150 | "name": { 151 | "appeared_as": "Chris Myers", 152 | "original": "Christian Bale" 153 | } 154 | }, 155 | { 156 | "url": "http://www.imdb.com/name/nm1209966/", 157 | "photo": "https://yts.ag/assets/images/actors/thumb/nm1209966.jpg", 158 | "name": { 159 | "appeared_as": "Mikael Boghosian", 160 | "original": "Oscar Isaac" 161 | } 162 | }, 163 | { 164 | "url": "http://www.imdb.com/name/nm0013037/", 165 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0013037.jpg", 166 | "name": { 167 | "appeared_as": "Marta Boghosian", 168 | "original": "Shohreh Aghdashloo" 169 | } 170 | }, 171 | { 172 | "url": "http://www.imdb.com/name/nm0000342/", 173 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000342.jpg", 174 | "name": { 175 | "appeared_as": "Ambassador Morgenthau", 176 | "original": "James Cromwell" 177 | } 178 | } 179 | ], 180 | "year": 2016, 181 | "download": { 182 | "links": { 183 | "url": "https://yts.ag/torrent/download/8F89F166AFA1A457D223731733339DB0DBDF7455", 184 | "quality": "1080p" 185 | } 186 | }, 187 | "screenshots": [ 188 | "https://yts.ag/assets/images/movies/the_promise_2016/large-screenshot1.jpg", 189 | "https://yts.ag/assets/images/movies/the_promise_2016/large-screenshot2.jpg", 190 | "https://yts.ag/assets/images/movies/the_promise_2016/large-screenshot3.jpg" 191 | ], 192 | "trailer": "https://www.youtube.com/embed/C5LBCIHOykk?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 193 | }, 194 | { 195 | "rating": { 196 | "imdb": 4.1, 197 | "likes": 1 198 | }, 199 | "genres": [ 200 | "Horror", 201 | "Thriller" 202 | ], 203 | "name": "The Haunting of Alice D", 204 | "cover": "https://yts.ag/assets/images/movies/the_haunting_of_alice_d_2014/medium-cover.jpg", 205 | "synopsis": "In the late 1890s the Davenport House was a famous and successful brothel, until a young prostitute named Alice killed herself there. After her death, the brothel became haunted by Alice's ghost, and was eventually abandoned. More than a century later, the old structure is renovated into a beautiful mansion. It is still rumored to inhabit the ghost of Alice. Despite this, the new owner; the rich and arrogant heir to the Davenport fortune, decides to throw a wild party for his first night in the house.", 206 | "similar_movies": [ 207 | { 208 | "url": "https://yts.ag/movie/gut-2012", 209 | "year": 2012, 210 | "cover": "https://yts.ag/assets/images/movies/Gut_2012/medium-cover.jpg", 211 | "title": "Gut" 212 | }, 213 | { 214 | "url": "https://yts.ag/movie/amnesiac-2014", 215 | "year": 2014, 216 | "cover": "https://yts.ag/assets/images/movies/amnesiac_2015/medium-cover.jpg", 217 | "title": "Amnesiac" 218 | }, 219 | { 220 | "url": "https://yts.ag/movie/haunter-2013", 221 | "year": 2013, 222 | "cover": "https://yts.ag/assets/images/movies/Haunter_2013/medium-cover.jpg", 223 | "title": "Haunter" 224 | }, 225 | { 226 | "url": "https://yts.ag/movie/night-tide-1961", 227 | "year": 1961, 228 | "cover": "https://yts.ag/assets/images/movies/night_tide_1961/medium-cover.jpg", 229 | "title": "Night Tide" 230 | } 231 | ], 232 | "directors": [ 233 | { 234 | "url": "http://www.imdb.com/name/nm1939136/", 235 | "photo": "", 236 | "name": "Jessica Sonneborn" 237 | } 238 | ], 239 | "actors": [ 240 | { 241 | "url": "http://www.imdb.com/name/nm0387987/", 242 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0387987.jpg", 243 | "name": { 244 | "appeared_as": "Sr. Davenport", 245 | "original": "Kane Hodder" 246 | } 247 | }, 248 | { 249 | "url": "http://www.imdb.com/name/nm2017931/", 250 | "photo": "", 251 | "name": { 252 | "appeared_as": "Joe Davenport", 253 | "original": "Juan Riedinger" 254 | } 255 | }, 256 | { 257 | "url": "http://www.imdb.com/name/nm0752457/", 258 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0752457.jpg", 259 | "name": { 260 | "appeared_as": "Isabel", 261 | "original": "Chanel Ryan" 262 | } 263 | }, 264 | { 265 | "url": "http://www.imdb.com/name/nm2440492/", 266 | "photo": "", 267 | "name": { 268 | "appeared_as": "Delilah", 269 | "original": "Sarah Nicklin" 270 | } 271 | } 272 | ], 273 | "year": 2014, 274 | "download": { 275 | "links": { 276 | "url": "https://yts.ag/torrent/download/F1D42EF240D15D85AF1733E1E3D8CDCEB228DC6C", 277 | "quality": "1080p" 278 | } 279 | }, 280 | "screenshots": [ 281 | "https://yts.ag/assets/images/movies/the_haunting_of_alice_d_2014/large-screenshot1.jpg", 282 | "https://yts.ag/assets/images/movies/the_haunting_of_alice_d_2014/large-screenshot2.jpg", 283 | "https://yts.ag/assets/images/movies/the_haunting_of_alice_d_2014/large-screenshot3.jpg" 284 | ], 285 | "trailer": "https://www.youtube.com/embed/usLJqoaQAmk?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 286 | }, 287 | { 288 | "rating": { 289 | "Audience": "17%", 290 | "imdb": 4.5, 291 | "likes": 3 292 | }, 293 | "genres": [ 294 | "Horror", 295 | "Mystery", 296 | "Thriller" 297 | ], 298 | "name": "Eloise", 299 | "cover": "https://yts.ag/assets/images/movies/eloise_2017/medium-cover.jpg", 300 | "synopsis": "Set in a defunct insane asylum known as 'Eloise,' four friends break into the abandoned institution in hopes of finding a death certificate, which will grant one of them the rights to a sizable inheritance. While inside the asylum, the group not only finds that Eloise houses a horrifying history but also the truth about their own tragic pasts.", 301 | "similar_movies": [ 302 | { 303 | "url": "https://yts.ag/movie/the-backpacker-2011", 304 | "year": 2011, 305 | "cover": "https://yts.ag/assets/images/movies/the_backpacker_2011/medium-cover.jpg", 306 | "title": "The Backpacker" 307 | }, 308 | { 309 | "url": "https://yts.ag/movie/maniac-cop-1988", 310 | "year": 1988, 311 | "cover": "https://yts.ag/assets/images/movies/maniac_cop_1988/medium-cover.jpg", 312 | "title": "Maniac Cop" 313 | }, 314 | { 315 | "url": "https://yts.ag/movie/dark-was-the-night-2014", 316 | "year": 2014, 317 | "cover": "https://yts.ag/assets/images/movies/dark_was_the_night_2014/medium-cover.jpg", 318 | "title": "Dark Was the Night" 319 | }, 320 | { 321 | "url": "https://yts.ag/movie/night-train-to-terror-1985", 322 | "year": 1985, 323 | "cover": "https://yts.ag/assets/images/movies/Night_Train_to_Terror_1985/medium-cover.jpg", 324 | "title": "Night Train to Terror" 325 | } 326 | ], 327 | "directors": [ 328 | { 329 | "url": "http://www.imdb.com/name/nm0499215/", 330 | "photo": "", 331 | "name": "Robert Legato" 332 | } 333 | ], 334 | "actors": [ 335 | { 336 | "url": "http://www.imdb.com/name/nm0244630/", 337 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0244630.jpg", 338 | "name": { 339 | "appeared_as": "Pia Carter", 340 | "original": "Eliza Dushku" 341 | } 342 | }, 343 | { 344 | "url": "http://www.imdb.com/name/nm0001598/", 345 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0001598.jpg", 346 | "name": { 347 | "appeared_as": "Dr. H.H. Greiss", 348 | "original": "Robert Patrick" 349 | } 350 | }, 351 | { 352 | "url": "http://www.imdb.com/name/nm2003700/", 353 | "photo": "", 354 | "name": { 355 | "appeared_as": "Jacob Martin", 356 | "original": "Chace Crawford" 357 | } 358 | }, 359 | { 360 | "url": "http://www.imdb.com/name/nm1040365/", 361 | "photo": "https://yts.ag/assets/images/actors/thumb/nm1040365.jpg", 362 | "name": { 363 | "appeared_as": "Dell Richards", 364 | "original": "Brandon T. Jackson" 365 | } 366 | } 367 | ], 368 | "year": 2017, 369 | "download": { 370 | "links": { 371 | "url": "https://yts.ag/torrent/download/4E98FB080EC29F0377B3A28E997DAD33C944244E", 372 | "quality": "1080p" 373 | } 374 | }, 375 | "screenshots": [ 376 | "https://yts.ag/assets/images/movies/eloise_2017/large-screenshot1.jpg", 377 | "https://yts.ag/assets/images/movies/eloise_2017/large-screenshot2.jpg", 378 | "https://yts.ag/assets/images/movies/eloise_2017/large-screenshot3.jpg" 379 | ], 380 | "trailer": "https://www.youtube.com/embed/ik9lZx94J2M?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 381 | }, 382 | { 383 | "rating": { 384 | "Audience": "94%", 385 | "imdb": 8.9, 386 | "likes": 2 387 | }, 388 | "genres": [ 389 | "Drama", 390 | "Music", 391 | "Musical", 392 | "Romance", 393 | "Thriller" 394 | ], 395 | "name": "The Phantom of the Opera at the Royal Albert Hall", 396 | "cover": "https://yts.ag/assets/images/movies/the_phantom_of_the_opera_at_the_royal_albert_hall_2011/medium-cover.jpg", 397 | "synopsis": "In 1986, Andrew Lloyd Webber's The Phantom of the Opera arrived on the West End stage at Her Majesty's Theatre. Fast forward 25 years and Phantom has achieved global success, millions of viewers, a film adaptation in 2004 and a musical sequel. Now viewers have the chance to experience this phenomenal show right from their own screens. Filmed at the Royal Albert Hall, this stunning performance brings the show to a bigger stage and celebrates its role as one of the biggest shows in theatre history, with speeches, performances and appearances by the original cast and some of the show's most notable Phantoms, including John Owen-Jones and Colm Wilkinson. Starring Ramin Karimloo and Sierra Boggess, Phantom tells the story of a deformed musical genius who lives in the catacombs of the Paris Opera House. Shunned by society, the Phantom seeks revenge in cruel and often violent acts. The Phantom is in love with chorus girl Christine Daae and has been secretly training her to replace La ...", 398 | "similar_movies": [ 399 | { 400 | "url": "https://yts.ag/movie/everything-must-go-2010", 401 | "year": 2010, 402 | "cover": "https://yts.ag/assets/images/movies/Everything_Must_Go_2010/medium-cover.jpg", 403 | "title": "Everything Must Go" 404 | }, 405 | { 406 | "url": "https://yts.ag/movie/oliver-twist-2005", 407 | "year": 2005, 408 | "cover": "https://yts.ag/assets/images/movies/oliver_twist_2005/medium-cover.jpg", 409 | "title": "Oliver Twist" 410 | }, 411 | { 412 | "url": "https://yts.ag/movie/the-wanderers-1979", 413 | "year": 1979, 414 | "cover": "https://yts.ag/assets/images/movies/The_Wanderers_1979/medium-cover.jpg", 415 | "title": "The Wanderers" 416 | }, 417 | { 418 | "url": "https://yts.ag/movie/atonement-2007", 419 | "year": 2007, 420 | "cover": "https://yts.ag/assets/images/movies/atonement_2007/medium-cover.jpg", 421 | "title": "Atonement" 422 | } 423 | ], 424 | "directors": [ 425 | { 426 | "url": "http://www.imdb.com/name/nm0606835/", 427 | "photo": "", 428 | "name": "Nick Morris" 429 | } 430 | ], 431 | "actors": [ 432 | { 433 | "url": "http://www.imdb.com/name/nm0186903/", 434 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0186903.jpg", 435 | "name": { 436 | "appeared_as": "The Phantom - Original Company", 437 | "original": "Michael Crawford" 438 | } 439 | }, 440 | { 441 | "url": "http://www.imdb.com/name/nm1546077/", 442 | "photo": "", 443 | "name": { 444 | "appeared_as": "The Phantom", 445 | "original": "Ramin Karimloo" 446 | } 447 | }, 448 | { 449 | "url": "http://www.imdb.com/name/nm2301662/", 450 | "photo": "", 451 | "name": { 452 | "appeared_as": "Raoul", 453 | "original": "Hadley Fraser" 454 | } 455 | } 456 | ], 457 | "year": 2011, 458 | "download": { 459 | "links": { 460 | "url": "https://yts.ag/torrent/download/BD4544A9B63D2B2EF36F6A2FE1770DF17F686592", 461 | "quality": "1080p" 462 | } 463 | }, 464 | "screenshots": [ 465 | "https://yts.ag/assets/images/movies/the_phantom_of_the_opera_at_the_royal_albert_hall_2011/large-screenshot1.jpg", 466 | "https://yts.ag/assets/images/movies/the_phantom_of_the_opera_at_the_royal_albert_hall_2011/large-screenshot2.jpg", 467 | "https://yts.ag/assets/images/movies/the_phantom_of_the_opera_at_the_royal_albert_hall_2011/large-screenshot3.jpg" 468 | ], 469 | "trailer": "https://www.youtube.com/embed/wp83o8jgQOg?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 470 | }, 471 | { 472 | "rating": { 473 | "Critics": "74%", 474 | "Audience": "52%", 475 | "imdb": 6.4, 476 | "likes": 1 477 | }, 478 | "genres": [ 479 | "Action", 480 | "Drama", 481 | "Thriller" 482 | ], 483 | "name": "Route Irish", 484 | "cover": "https://yts.ag/assets/images/movies/route_irish_2010/medium-cover.jpg", 485 | "synopsis": "The story of a private security contractor in Iraq who rejected the official explanation of his friend's death and sets out to discover the truth.", 486 | "similar_movies": [ 487 | { 488 | "url": "https://yts.ag/movie/hitch-hike-1977", 489 | "year": 1977, 490 | "cover": "https://yts.ag/assets/images/movies/hitch_hike_1977/medium-cover.jpg", 491 | "title": "Hitch-Hike" 492 | }, 493 | { 494 | "url": "https://yts.ag/movie/i-love-you-phillip-morris-2009", 495 | "year": 2009, 496 | "cover": "https://yts.ag/assets/images/movies/I_Love_You_Phillip_Morris_2009/medium-cover.jpg", 497 | "title": "I Love You Phillip Morris" 498 | }, 499 | { 500 | "url": "https://yts.ag/movie/knock-knock-2015", 501 | "year": 2015, 502 | "cover": "https://yts.ag/assets/images/movies/knock_knock_2015/medium-cover.jpg", 503 | "title": "Knock Knock" 504 | }, 505 | { 506 | "url": "https://yts.ag/movie/the-best-and-the-brightest-2010", 507 | "year": 2010, 508 | "cover": "https://yts.ag/assets/images/movies/The_Best_and_the_Brightest_2010/medium-cover.jpg", 509 | "title": "The Best and the Brightest" 510 | } 511 | ], 512 | "directors": [ 513 | { 514 | "url": "http://www.imdb.com/name/nm0516360/", 515 | "photo": "", 516 | "name": "Ken Loach" 517 | } 518 | ], 519 | "actors": [ 520 | { 521 | "url": "http://www.imdb.com/name/nm1052141/", 522 | "photo": "", 523 | "name": { 524 | "appeared_as": "Alex Walker", 525 | "original": "Geoff Bell" 526 | } 527 | }, 528 | { 529 | "url": "http://www.imdb.com/name/nm0520510/", 530 | "photo": "", 531 | "name": { 532 | "appeared_as": "Steve", 533 | "original": "Stephen Lord" 534 | } 535 | }, 536 | { 537 | "url": "http://www.imdb.com/name/nm0632385/", 538 | "photo": "", 539 | "name": { 540 | "appeared_as": "Marisol", 541 | "original": "Najwa Nimri" 542 | } 543 | } 544 | ], 545 | "year": 2010, 546 | "download": { 547 | "links": { 548 | "url": "https://yts.ag/torrent/download/3BBA91F3CC09C47AA817D4FABB4CD81E3DB189CA", 549 | "quality": "1080p" 550 | } 551 | }, 552 | "screenshots": [ 553 | "https://yts.ag/assets/images/movies/route_irish_2010/large-screenshot1.jpg", 554 | "https://yts.ag/assets/images/movies/route_irish_2010/large-screenshot2.jpg", 555 | "https://yts.ag/assets/images/movies/route_irish_2010/large-screenshot3.jpg" 556 | ], 557 | "trailer": "https://www.youtube.com/embed/LM58hjtH-c8?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 558 | }, 559 | { 560 | "rating": { 561 | "Critics": "26%", 562 | "Audience": "40%", 563 | "imdb": 4.7, 564 | "likes": 4 565 | }, 566 | "genres": [ 567 | "Drama", 568 | "Thriller" 569 | ], 570 | "name": "Unforgettable", 571 | "cover": "https://yts.ag/assets/images/movies/unforgettable_2017/medium-cover.jpg", 572 | "synopsis": "A woman sets out to make life hell for her ex-husband's new fiancee.", 573 | "similar_movies": [ 574 | { 575 | "url": "https://yts.ag/movie/deadline-u-s-a-1952", 576 | "year": 1952, 577 | "cover": "https://yts.ag/assets/images/movies/deadline_usa_1952/medium-cover.jpg", 578 | "title": "Deadline - U.S.A." 579 | }, 580 | { 581 | "url": "https://yts.ag/movie/scrooged-1988", 582 | "year": 1988, 583 | "cover": "https://yts.ag/assets/images/movies/Scrooged_1988/medium-cover.jpg", 584 | "title": "Scrooged" 585 | }, 586 | { 587 | "url": "https://yts.ag/movie/the-keeping-room-2014", 588 | "year": 2014, 589 | "cover": "https://yts.ag/assets/images/movies/the_keeping_room_2014/medium-cover.jpg", 590 | "title": "The Keeping Room" 591 | }, 592 | { 593 | "url": "https://yts.ag/movie/before-and-after-1996", 594 | "year": 1996, 595 | "cover": "https://yts.ag/assets/images/movies/Before_and_After_1996/medium-cover.jpg", 596 | "title": "Before and After" 597 | } 598 | ], 599 | "directors": [ 600 | { 601 | "url": "http://www.imdb.com/name/nm0224145/", 602 | "photo": "", 603 | "name": "Denise Di Novi" 604 | } 605 | ], 606 | "actors": [ 607 | { 608 | "url": "http://www.imdb.com/name/nm0001337/", 609 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0001337.jpg", 610 | "name": { 611 | "appeared_as": "Tessa Connover", 612 | "original": "Katherine Heigl" 613 | } 614 | }, 615 | { 616 | "url": "http://www.imdb.com/name/nm0206257/", 617 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0206257.jpg", 618 | "name": { 619 | "appeared_as": "Julia Banks", 620 | "original": "Rosario Dawson" 621 | } 622 | }, 623 | { 624 | "url": "http://www.imdb.com/name/nm0001440/", 625 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0001440.jpg", 626 | "name": { 627 | "appeared_as": "Helen / Lovey", 628 | "original": "Cheryl Ladd" 629 | } 630 | }, 631 | { 632 | "url": "http://www.imdb.com/name/nm1579753/", 633 | "photo": "", 634 | "name": { 635 | "appeared_as": "Ali", 636 | "original": "Whitney Cummings" 637 | } 638 | } 639 | ], 640 | "year": 2017, 641 | "download": { 642 | "links": { 643 | "url": "https://yts.ag/torrent/download/2EB451C463AC6CDDFAB7F0584FE697DCAC3D1B1E", 644 | "quality": "1080p" 645 | } 646 | }, 647 | "screenshots": [ 648 | "https://yts.ag/assets/images/movies/unforgettable_2017/large-screenshot1.jpg", 649 | "https://yts.ag/assets/images/movies/unforgettable_2017/large-screenshot2.jpg", 650 | "https://yts.ag/assets/images/movies/unforgettable_2017/large-screenshot3.jpg" 651 | ], 652 | "trailer": "https://www.youtube.com/embed/RK6gcQuJ6LM?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 653 | }, 654 | { 655 | "rating": { 656 | "Critics": "45%", 657 | "Audience": "57%", 658 | "imdb": 6.6, 659 | "likes": 2 660 | }, 661 | "genres": [ 662 | "Action", 663 | "Crime", 664 | "Drama", 665 | "Mystery", 666 | "Sci-Fi", 667 | "Thriller" 668 | ], 669 | "name": "Ghost in the Shell", 670 | "cover": "https://yts.ag/assets/images/movies/ghost_in_the_shell_2017/medium-cover.jpg", 671 | "synopsis": "In the near future, Major Motoko Kusanagi (Scarlett Johansson) is the first of her kind: A human saved from a terrible terrorist attack, who is cyber-enhanced to be a perfect soldier devoted to stopping the world's most dangerous criminals. When terrorism reaches a new level that includes the ability to hack into people's minds and control them, Major Kusanagi is uniquely qualified to stop it. As she prepares to face a new enemy, Major Kusanagi discovers that she has been lied to: her life was not saved, it was stolen. She will stop at nothing to recover her past, find out who did this to her and stop them before they do it to others. Based on the internationally acclaimed Japanese Manga, \"The Ghost in the Shell.", 672 | "similar_movies": [ 673 | { 674 | "url": "https://yts.ag/movie/the-guest-2014", 675 | "year": 2014, 676 | "cover": "https://yts.ag/assets/images/movies/The_Guest_2014/medium-cover.jpg", 677 | "title": "The Guest" 678 | }, 679 | { 680 | "url": "https://yts.ag/movie/what-richard-did-2012", 681 | "year": 2012, 682 | "cover": "https://yts.ag/assets/images/movies/What_Richard_Did_2012/medium-cover.jpg", 683 | "title": "What Richard Did" 684 | }, 685 | { 686 | "url": "https://yts.ag/movie/sex-lies-and-videotape-1989", 687 | "year": 1989, 688 | "cover": "https://yts.ag/assets/images/movies/sex_lies_and_videotape_1989/medium-cover.jpg", 689 | "title": "Sex, Lies, and Videotape" 690 | }, 691 | { 692 | "url": "https://yts.ag/movie/silent-night-2012", 693 | "year": 2012, 694 | "cover": "https://yts.ag/assets/images/movies/Silent_Night_2012/medium-cover.jpg", 695 | "title": "Silent Night" 696 | } 697 | ], 698 | "directors": [ 699 | { 700 | "url": "http://www.imdb.com/name/nm2782185/", 701 | "photo": "", 702 | "name": "Rupert Sanders" 703 | } 704 | ], 705 | "actors": [ 706 | { 707 | "url": "http://www.imdb.com/name/nm0424060/", 708 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0424060.jpg", 709 | "name": { 710 | "appeared_as": "Major", 711 | "original": "Scarlett Johansson" 712 | } 713 | }, 714 | { 715 | "url": "http://www.imdb.com/name/nm0685856/", 716 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0685856.jpg", 717 | "name": { 718 | "appeared_as": "Kuze", 719 | "original": "Michael Pitt" 720 | } 721 | }, 722 | { 723 | "url": "http://www.imdb.com/name/nm0000300/", 724 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000300.jpg", 725 | "name": { 726 | "appeared_as": "Dr. Ouelet", 727 | "original": "Juliette Binoche" 728 | } 729 | }, 730 | { 731 | "url": "http://www.imdb.com/name/nm0000699/", 732 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000699.jpg", 733 | "name": { 734 | "appeared_as": "Dr. Osmund", 735 | "original": "Michael Wincott" 736 | } 737 | } 738 | ], 739 | "year": 2017, 740 | "download": { 741 | "links": { 742 | "url": "https://yts.ag/torrent/download/475E515A79DAECC6917B4606DD06D44045263EFD", 743 | "quality": "1080p" 744 | } 745 | }, 746 | "screenshots": [ 747 | "https://yts.ag/assets/images/movies/ghost_in_the_shell_2017/large-screenshot1.jpg", 748 | "https://yts.ag/assets/images/movies/ghost_in_the_shell_2017/large-screenshot2.jpg", 749 | "https://yts.ag/assets/images/movies/ghost_in_the_shell_2017/large-screenshot3.jpg" 750 | ], 751 | "trailer": "https://www.youtube.com/embed/G4VmJcZR0Yg?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 752 | }, 753 | { 754 | "rating": { 755 | "Critics": "69%", 756 | "Audience": "86%", 757 | "imdb": 7.7, 758 | "likes": 2 759 | }, 760 | "genres": [ 761 | "Drama" 762 | ], 763 | "name": "Gifted", 764 | "cover": "https://yts.ag/assets/images/movies/gifted_2017/medium-cover.jpg", 765 | "synopsis": "Frank Adler (Chris Evans) is a single man raising a child prodigy - his spirited young niece Mary (Mckenna Grace) in a coastal town in Florida. Frank's plans for a normal school life for Mary are foiled when the seven-year-old's mathematical abilities come to the attention of Frank's formidable mother Evelyn (Lindsay Duncan) whose plans for her granddaughter threaten to separate Frank and Mary. Octavia Spencer plays Roberta, Frank and Mary's landlady and best friend. Jenny Slate is Mary's teacher, Bonnie, a young woman whose concern for her student develops into a connection with her uncle as well.", 766 | "similar_movies": [ 767 | { 768 | "url": "https://yts.ag/movie/jerry-maguire-1996", 769 | "year": 1996, 770 | "cover": "https://yts.ag/assets/images/movies/Jerry_Maguire_1996/medium-cover.jpg", 771 | "title": "Jerry Maguire" 772 | }, 773 | { 774 | "url": "https://yts.ag/movie/sneakers-1992", 775 | "year": 1992, 776 | "cover": "https://yts.ag/assets/images/movies/sneakers_1992/medium-cover.jpg", 777 | "title": "Sneakers" 778 | }, 779 | { 780 | "url": "https://yts.ag/movie/fight-club-1999", 781 | "year": 1999, 782 | "cover": "https://yts.ag/assets/images/movies/Fight_Club_1999/medium-cover.jpg", 783 | "title": "Fight Club" 784 | }, 785 | { 786 | "url": "https://yts.ag/movie/summer-in-february-2013", 787 | "year": 2013, 788 | "cover": "https://yts.ag/assets/images/movies/Summer_in_February_2013/medium-cover.jpg", 789 | "title": "Summer in February" 790 | } 791 | ], 792 | "directors": [ 793 | { 794 | "url": "http://www.imdb.com/name/nm1989536/", 795 | "photo": "", 796 | "name": "Marc Webb" 797 | } 798 | ], 799 | "actors": [ 800 | { 801 | "url": "http://www.imdb.com/name/nm0262635/", 802 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0262635.jpg", 803 | "name": { 804 | "appeared_as": "Frank Adler", 805 | "original": "Chris Evans" 806 | } 807 | }, 808 | { 809 | "url": "http://www.imdb.com/name/nm2809577/", 810 | "photo": "https://yts.ag/assets/images/actors/thumb/nm2809577.jpg", 811 | "name": { 812 | "appeared_as": "Bonnie Stevenson", 813 | "original": "Jenny Slate" 814 | } 815 | }, 816 | { 817 | "url": "http://www.imdb.com/name/nm0555500/", 818 | "photo": "", 819 | "name": { 820 | "appeared_as": "Gloria Davis", 821 | "original": "Elizabeth Marvel" 822 | } 823 | }, 824 | { 825 | "url": "http://www.imdb.com/name/nm0818055/", 826 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0818055.jpg", 827 | "name": { 828 | "appeared_as": "Roberta Taylor", 829 | "original": "Octavia Spencer" 830 | } 831 | } 832 | ], 833 | "year": 2017, 834 | "download": { 835 | "links": { 836 | "url": "https://yts.ag/torrent/download/F6F9545E93D91ECAE4728964EF5CEF54A6F98609", 837 | "quality": "1080p" 838 | } 839 | }, 840 | "screenshots": [ 841 | "https://yts.ag/assets/images/movies/gifted_2017/large-screenshot1.jpg", 842 | "https://yts.ag/assets/images/movies/gifted_2017/large-screenshot2.jpg", 843 | "https://yts.ag/assets/images/movies/gifted_2017/large-screenshot3.jpg" 844 | ], 845 | "trailer": "https://www.youtube.com/embed/tI01wBXGHUs?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 846 | }, 847 | { 848 | "rating": { 849 | "Critics": "37%", 850 | "Audience": "31%", 851 | "imdb": 5.4, 852 | "likes": 2 853 | }, 854 | "genres": [ 855 | "Action", 856 | "Horror", 857 | "Sci-Fi" 858 | ], 859 | "name": "The Lawnmower Man", 860 | "cover": "https://yts.ag/assets/images/movies/the_lawnmower_man_1992/medium-cover.jpg", 861 | "synopsis": "A scientist performs experiments involving intelligence enhancing drugs and virtual reality on a simple-minded gardener. He puts the gardener on an extensive schedule of learning, and quickly he becomes brilliant. But at this point the gardener has a few ideas of his own on how the research should continue, and the scientist begins losing control of his experiments.", 862 | "similar_movies": [ 863 | { 864 | "url": "https://yts.ag/movie/tomorrow-never-dies-1997", 865 | "year": 1997, 866 | "cover": "https://yts.ag/assets/images/movies/James_Bond_Tomorrow_Never_Dies_1997/medium-cover.jpg", 867 | "title": "Tomorrow Never Dies" 868 | }, 869 | { 870 | "url": "https://yts.ag/movie/american-heist-2014", 871 | "year": 2014, 872 | "cover": "https://yts.ag/assets/images/movies/american_heist_2014/medium-cover.jpg", 873 | "title": "American Heist" 874 | }, 875 | { 876 | "url": "https://yts.ag/movie/superman-ii-1980", 877 | "year": 1980, 878 | "cover": "https://yts.ag/assets/images/movies/Superman_II_1980/medium-cover.jpg", 879 | "title": "Superman II" 880 | }, 881 | { 882 | "url": "https://yts.ag/movie/the-mechanic-2011", 883 | "year": 2011, 884 | "cover": "https://yts.ag/assets/images/movies/The_Mechanic_2011/medium-cover.jpg", 885 | "title": "The Mechanic" 886 | } 887 | ], 888 | "directors": [ 889 | { 890 | "url": "http://www.imdb.com/name/nm0502577/", 891 | "photo": "", 892 | "name": "Brett Leonard" 893 | } 894 | ], 895 | "actors": [ 896 | { 897 | "url": "http://www.imdb.com/name/nm0000112/", 898 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000112.jpg", 899 | "name": { 900 | "appeared_as": "Dr. Lawrence Angelo", 901 | "original": "Pierce Brosnan" 902 | } 903 | }, 904 | { 905 | "url": "http://www.imdb.com/name/nm0606487/", 906 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0606487.jpg", 907 | "name": { 908 | "appeared_as": "The Director", 909 | "original": "Dean Norris" 910 | } 911 | }, 912 | { 913 | "url": "http://www.imdb.com/name/nm0006535/", 914 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0006535.jpg", 915 | "name": { 916 | "appeared_as": "Security Tech", 917 | "original": "Doug Hutchison" 918 | } 919 | }, 920 | { 921 | "url": "http://www.imdb.com/name/nm0001194/", 922 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0001194.jpg", 923 | "name": { 924 | "appeared_as": "Jobe Smith", 925 | "original": "Jeff Fahey" 926 | } 927 | } 928 | ], 929 | "year": 1992, 930 | "download": { 931 | "links": { 932 | "url": "https://yts.ag/torrent/download/382DE66FB50AF237EC7EFF03FA5CE93A0D4A8B3D", 933 | "quality": "1080p" 934 | } 935 | }, 936 | "screenshots": [ 937 | "https://yts.ag/assets/images/movies/the_lawnmower_man_1992/large-screenshot1.jpg", 938 | "https://yts.ag/assets/images/movies/the_lawnmower_man_1992/large-screenshot2.jpg", 939 | "https://yts.ag/assets/images/movies/the_lawnmower_man_1992/large-screenshot3.jpg" 940 | ], 941 | "trailer": "https://www.youtube.com/embed/3LNvXjb44-U?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 942 | }, 943 | { 944 | "rating": { 945 | "Critics": "52%", 946 | "Audience": "54%", 947 | "imdb": 6.4, 948 | "likes": 2 949 | }, 950 | "genres": [ 951 | "Animation", 952 | "Comedy", 953 | "Family", 954 | "Fantasy" 955 | ], 956 | "name": "The Boss Baby", 957 | "cover": "https://yts.ag/assets/images/movies/the_boss_baby_2017/medium-cover.jpg", 958 | "synopsis": "Seven-year-old Tim Templeton has always been a boy of an overactive imagination, and for the past seven years, life was all peaches for him, getting all the love and affection from his caring parents. However, life will never be the same and Tim won't be the centre of attention anymore as the arrival of an improbable new brother named Boss Baby, dressed in a black suit complete with a tie and a briefcase, will shortly rob him of all love, as he takes over the whole Templetons' house. Nevertheless, although this may be true, soon, Tim and the new Boss in a diaper will need to put differences aside and join forces, as a sneaky scheme involving the head of Puppy Co. threatens to tilt the balance of power towards their insidiously adorable furry antagonists, not to mention that the next Pet Convention is in only two days.. Brothers, hurry up.", 959 | "similar_movies": [ 960 | { 961 | "url": "https://yts.ag/movie/open-season-3-2010", 962 | "year": 2010, 963 | "cover": "https://yts.ag/assets/images/movies/Open_Season_3_2010/medium-cover.jpg", 964 | "title": "Open Season 3" 965 | }, 966 | { 967 | "url": "https://yts.ag/movie/megamind-2010", 968 | "year": 2010, 969 | "cover": "https://yts.ag/assets/images/movies/Megamind_2010/medium-cover.jpg", 970 | "title": "Megamind" 971 | }, 972 | { 973 | "url": "https://yts.ag/movie/the-good-dinosaur-2015", 974 | "year": 2015, 975 | "cover": "https://yts.ag/assets/images/movies/the_good_dinosaur_2015/medium-cover.jpg", 976 | "title": "The Good Dinosaur" 977 | }, 978 | { 979 | "url": "https://yts.ag/movie/cat-shit-one-2010", 980 | "year": 2010, 981 | "cover": "https://yts.ag/assets/images/movies/Cat_Shit_One_2009/medium-cover.jpg", 982 | "title": "Cat Shit One" 983 | } 984 | ], 985 | "directors": [ 986 | { 987 | "url": "http://www.imdb.com/name/nm0569891/", 988 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0569891.jpg", 989 | "name": "Tom McGrath" 990 | } 991 | ], 992 | "actors": [ 993 | { 994 | "url": "http://www.imdb.com/name/nm0000114/", 995 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000114.jpg", 996 | "name": { 997 | "appeared_as": "Francis Francis", 998 | "original": "Steve Buscemi" 999 | } 1000 | }, 1001 | { 1002 | "url": "http://www.imdb.com/name/nm0000285/", 1003 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000285.jpg", 1004 | "name": { 1005 | "appeared_as": "Boss Baby", 1006 | "original": "Alec Baldwin" 1007 | } 1008 | }, 1009 | { 1010 | "url": "http://www.imdb.com/name/nm0001435/", 1011 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0001435.jpg", 1012 | "name": { 1013 | "appeared_as": "Mom", 1014 | "original": "Lisa Kudrow" 1015 | } 1016 | }, 1017 | { 1018 | "url": "http://www.imdb.com/name/nm0001497/", 1019 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0001497.jpg", 1020 | "name": { 1021 | "appeared_as": "Adult Tim / Narrator", 1022 | "original": "Tobey Maguire" 1023 | } 1024 | } 1025 | ], 1026 | "year": 2017, 1027 | "download": { 1028 | "links": { 1029 | "url": "https://yts.ag/torrent/download/3997AC6DB4C767B9CC3DE84D25E3E912CF24612E", 1030 | "quality": "1080p" 1031 | } 1032 | }, 1033 | "screenshots": [ 1034 | "https://yts.ag/assets/images/movies/the_boss_baby_2017/large-screenshot1.jpg", 1035 | "https://yts.ag/assets/images/movies/the_boss_baby_2017/large-screenshot2.jpg", 1036 | "https://yts.ag/assets/images/movies/the_boss_baby_2017/large-screenshot3.jpg" 1037 | ], 1038 | "trailer": "https://www.youtube.com/embed/k397HRbTtWI?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 1039 | }, 1040 | { 1041 | "rating": { 1042 | "Critics": "92%", 1043 | "Audience": "52%", 1044 | "imdb": 7.0, 1045 | "likes": 1 1046 | }, 1047 | "genres": [ 1048 | "Biography", 1049 | "Drama" 1050 | ], 1051 | "name": "A Quiet Passion", 1052 | "cover": "https://yts.ag/assets/images/movies/a_quiet_passion_2016/medium-cover.jpg", 1053 | "synopsis": "The story of American poet Emily Dickinson from her early days as a young schoolgirl to her later years as a reclusive, unrecognized artist.", 1054 | "similar_movies": [ 1055 | { 1056 | "url": "https://yts.ag/movie/concussion-2015", 1057 | "year": 2015, 1058 | "cover": "https://yts.ag/assets/images/movies/concussion_2015/medium-cover.jpg", 1059 | "title": "Concussion" 1060 | }, 1061 | { 1062 | "url": "https://yts.ag/movie/experimenter-2015", 1063 | "year": 2015, 1064 | "cover": "https://yts.ag/assets/images/movies/experimenter_2015/medium-cover.jpg", 1065 | "title": "Experimenter" 1066 | }, 1067 | { 1068 | "url": "https://yts.ag/movie/anthropoid-2016", 1069 | "year": 2016, 1070 | "cover": "https://yts.ag/assets/images/movies/anthropoid_2016/medium-cover.jpg", 1071 | "title": "Anthropoid" 1072 | }, 1073 | { 1074 | "url": "https://yts.ag/movie/the-walk-2015", 1075 | "year": 2015, 1076 | "cover": "https://yts.ag/assets/images/movies/the_walk_2015/medium-cover.jpg", 1077 | "title": "The Walk" 1078 | } 1079 | ], 1080 | "directors": [ 1081 | { 1082 | "url": "http://www.imdb.com/name/nm0203993/", 1083 | "photo": "", 1084 | "name": "Terence Davies" 1085 | } 1086 | ], 1087 | "actors": [ 1088 | { 1089 | "url": "http://www.imdb.com/name/nm0000383/", 1090 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000383.jpg", 1091 | "name": { 1092 | "appeared_as": "Vinnie Dickinson", 1093 | "original": "Jennifer Ehle" 1094 | } 1095 | }, 1096 | { 1097 | "url": "http://www.imdb.com/name/nm0001018/", 1098 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0001018.jpg", 1099 | "name": { 1100 | "appeared_as": "Father", 1101 | "original": "Keith Carradine" 1102 | } 1103 | }, 1104 | { 1105 | "url": "http://www.imdb.com/name/nm0633223/", 1106 | "photo": "", 1107 | "name": { 1108 | "appeared_as": "Emily Dickinson", 1109 | "original": "Cynthia Nixon" 1110 | } 1111 | }, 1112 | { 1113 | "url": "http://www.imdb.com/name/nm0068187/", 1114 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0068187.jpg", 1115 | "name": { 1116 | "appeared_as": "Young Emily", 1117 | "original": "Emma Bell" 1118 | } 1119 | } 1120 | ], 1121 | "year": 2016, 1122 | "download": { 1123 | "links": { 1124 | "url": "https://yts.ag/torrent/download/E131EBED9C62891D16BF3F556ADE6B8D0AEAC4D4", 1125 | "quality": "1080p" 1126 | } 1127 | }, 1128 | "screenshots": [ 1129 | "https://yts.ag/assets/images/movies/a_quiet_passion_2016/large-screenshot1.jpg", 1130 | "https://yts.ag/assets/images/movies/a_quiet_passion_2016/large-screenshot2.jpg", 1131 | "https://yts.ag/assets/images/movies/a_quiet_passion_2016/large-screenshot3.jpg" 1132 | ], 1133 | "trailer": "https://www.youtube.com/embed/T3SyPbUTEeU?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 1134 | }, 1135 | { 1136 | "rating": { 1137 | "Critics": "50%", 1138 | "Audience": "60%", 1139 | "imdb": 6.5, 1140 | "likes": 6 1141 | }, 1142 | "genres": [ 1143 | "Action", 1144 | "Horror", 1145 | "Thriller" 1146 | ], 1147 | "name": "Hellbound: Hellraiser II", 1148 | "cover": "https://yts.ag/assets/images/movies/Hellbound_Hellraiser_II_UNCUT_1988/medium-cover.jpg", 1149 | "synopsis": "Doctor Channard is sent a new patient, a girl warning of the terrible creatures that have destroyed her family, Cenobites who offer the most intense sensations of pleasure and pain. But Channard has been searching for the doorway to Hell for years, and Kirsty must follow him to save her father and witness the power struggles among the newly damned.", 1150 | "similar_movies": [ 1151 | { 1152 | "url": "https://yts.ag/movie/black-moon-rising-1986", 1153 | "year": 1986, 1154 | "cover": "https://yts.ag/assets/images/movies/black_moon_rising_1986/medium-cover.jpg", 1155 | "title": "Black Moon Rising" 1156 | }, 1157 | { 1158 | "url": "https://yts.ag/movie/windtalkers-2002", 1159 | "year": 2002, 1160 | "cover": "https://yts.ag/assets/images/movies/Windtalkers_2002/medium-cover.jpg", 1161 | "title": "Windtalkers" 1162 | }, 1163 | { 1164 | "url": "https://yts.ag/movie/blade-trinity-2004", 1165 | "year": 2004, 1166 | "cover": "https://yts.ag/assets/images/movies/Blade_Trinity_2004/medium-cover.jpg", 1167 | "title": "Blade: Trinity" 1168 | }, 1169 | { 1170 | "url": "https://yts.ag/movie/paradise-found-2015-2015", 1171 | "year": 2015, 1172 | "cover": "https://yts.ag/assets/images/movies/paradise_found_2015_2015/medium-cover.jpg", 1173 | "title": "Paradise Found 2015" 1174 | } 1175 | ], 1176 | "directors": [ 1177 | { 1178 | "url": "http://www.imdb.com/name/nm0709752/", 1179 | "photo": "", 1180 | "name": "Tony Randel" 1181 | } 1182 | ], 1183 | "actors": [ 1184 | { 1185 | "url": "http://www.imdb.com/name/nm0732367/", 1186 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0732367.jpg", 1187 | "name": { 1188 | "appeared_as": "Larry Cotton", 1189 | "original": "Andrew Robinson" 1190 | } 1191 | }, 1192 | { 1193 | "url": "http://www.imdb.com/name/nm0383354/", 1194 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0383354.jpg", 1195 | "name": { 1196 | "appeared_as": "Julia Cotton", 1197 | "original": "Clare Higgins" 1198 | } 1199 | }, 1200 | { 1201 | "url": "http://www.imdb.com/name/nm0491090/", 1202 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0491090.jpg", 1203 | "name": { 1204 | "appeared_as": "Kirsty Cotton", 1205 | "original": "Ashley Laurence" 1206 | } 1207 | }, 1208 | { 1209 | "url": "http://www.imdb.com/name/nm0103208/", 1210 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0103208.jpg", 1211 | "name": { 1212 | "appeared_as": "Pinhead / Captain Elliot Spencer", 1213 | "original": "Doug Bradley" 1214 | } 1215 | } 1216 | ], 1217 | "year": 1988, 1218 | "download": { 1219 | "links": { 1220 | "url": "https://yts.ag/torrent/download/523E71D3571A64187B32550B319E72DB66A7C7E7", 1221 | "quality": "1080p" 1222 | } 1223 | }, 1224 | "screenshots": [ 1225 | "https://yts.ag/assets/images/movies/Hellbound_Hellraiser_II_UNCUT_1988/large-screenshot1.jpg", 1226 | "https://yts.ag/assets/images/movies/Hellbound_Hellraiser_II_UNCUT_1988/large-screenshot2.jpg", 1227 | "https://yts.ag/assets/images/movies/Hellbound_Hellraiser_II_UNCUT_1988/large-screenshot3.jpg" 1228 | ], 1229 | "trailer": "https://www.youtube.com/embed/ZNgiLa8sToA?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 1230 | }, 1231 | { 1232 | "rating": { 1233 | "Critics": "90%", 1234 | "Audience": "63%", 1235 | "imdb": 6.4, 1236 | "likes": 3 1237 | }, 1238 | "genres": [ 1239 | "Comedy", 1240 | "Drama" 1241 | ], 1242 | "name": "S.O.B.", 1243 | "cover": "https://yts.ag/assets/images/movies/s_o_b_1981/medium-cover.jpg", 1244 | "synopsis": "Felix Farmer is an extremely successful Hollywood producer, whose movies for Capitol Pictures have never lost money,... until now, with his latest, most expensive film to date, Night Wind, ending up being a major flop. The film, starring his popular Academy Award winning actress wife, Sally Miles, who has a G-rated screen image, almost bankrupts the studio. As such, the studio execs turn on Felix, who want to take over creative control of the movie and re-edit it to lessen the damage. It also turns Felix suicidal, his mental state which in turn leads to Sally leaving him and taking their two children with her. As Felix tries and tries again unsuccessfully to kill himself, he finally stumbles upon an idea which gets him out of his depression. He plans to use his and Sally's money to purchase the movie back from the studio, and re-imagine it by adding a few new scenes, to drastically altar it from the G-rated fantasy film it is, to an R-rated sex romp, complete with Sally baring her ...", 1245 | "similar_movies": [ 1246 | { 1247 | "url": "https://yts.ag/movie/the-love-guru-2008", 1248 | "year": 2008, 1249 | "cover": "https://yts.ag/assets/images/movies/The_Love_Guru_2008/medium-cover.jpg", 1250 | "title": "The Love Guru" 1251 | }, 1252 | { 1253 | "url": "https://yts.ag/movie/a-bugs-life-1998", 1254 | "year": 1998, 1255 | "cover": "https://yts.ag/assets/images/movies/a_bugs_life_1998/medium-cover.jpg", 1256 | "title": "A Bug's Life" 1257 | }, 1258 | { 1259 | "url": "https://yts.ag/movie/alter-egos-2012", 1260 | "year": 2012, 1261 | "cover": "https://yts.ag/assets/images/movies/alter_egos_2012/medium-cover.jpg", 1262 | "title": "Alter Egos" 1263 | }, 1264 | { 1265 | "url": "https://yts.ag/movie/jeff-who-lives-at-home-2011", 1266 | "year": 2011, 1267 | "cover": "https://yts.ag/assets/images/movies/Jeff_Who_Lives_at_Home_2011/medium-cover.jpg", 1268 | "title": "Jeff, Who Lives at Home" 1269 | } 1270 | ], 1271 | "directors": [], 1272 | "actors": [], 1273 | "year": 1981, 1274 | "download": { 1275 | "links": { 1276 | "url": "https://yts.ag/torrent/download/FF64AE905A6B744990FF9CA9D6F27AA3DCDD5721", 1277 | "quality": "1080p" 1278 | } 1279 | }, 1280 | "screenshots": [ 1281 | "https://yts.ag/assets/images/movies/s_o_b_1981/large-screenshot1.jpg", 1282 | "https://yts.ag/assets/images/movies/s_o_b_1981/large-screenshot2.jpg", 1283 | "https://yts.ag/assets/images/movies/s_o_b_1981/large-screenshot3.jpg" 1284 | ], 1285 | "trailer": "https://www.youtube.com/embed/sFgLb4eQSuI?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 1286 | }, 1287 | { 1288 | "rating": { 1289 | "Audience": "13%", 1290 | "imdb": 4.3, 1291 | "likes": 1 1292 | }, 1293 | "genres": [ 1294 | "Comedy" 1295 | ], 1296 | "name": "ChickLit", 1297 | "cover": "https://yts.ag/assets/images/movies/chicklit_2016/medium-cover.jpg", 1298 | "synopsis": "ChickLit is a comedy drama about four guys trying to save their local pub from closing down. They group write a chick lit, or more specifically a 'mummy porn' novel in the style of 'Fifty Shades of Grey' and it gets snapped up. The only snag is that the publisher insists that the young woman 'author' does press and publicity. The guys have to keep their involvement a secret and so engage an out of work actress to 'role play' the part of the author. This leads to her becoming the star in the film of the book, the tables are turned on the guys and she is in control - leaving them with the awful prospect of having to secretly churn out sex novels for the foreseeable future.", 1299 | "similar_movies": [ 1300 | { 1301 | "url": "https://yts.ag/movie/a-good-year-2006", 1302 | "year": 2006, 1303 | "cover": "https://yts.ag/assets/images/movies/A_Good_Year_2006/medium-cover.jpg", 1304 | "title": "A Good Year" 1305 | }, 1306 | { 1307 | "url": "https://yts.ag/movie/parental-guidance-2012", 1308 | "year": 2012, 1309 | "cover": "https://yts.ag/assets/images/movies/Parental_Guidance_2012/medium-cover.jpg", 1310 | "title": "Parental Guidance" 1311 | }, 1312 | { 1313 | "url": "https://yts.ag/movie/the-sandlot-1993", 1314 | "year": 1993, 1315 | "cover": "https://yts.ag/assets/images/movies/The_Sandlot_1993/medium-cover.jpg", 1316 | "title": "The Sandlot" 1317 | }, 1318 | { 1319 | "url": "https://yts.ag/movie/funny-lady-1975", 1320 | "year": 1975, 1321 | "cover": "https://yts.ag/assets/images/movies/Funny_Lady_1975/medium-cover.jpg", 1322 | "title": "Funny Lady" 1323 | } 1324 | ], 1325 | "directors": [ 1326 | { 1327 | "url": "http://www.imdb.com/name/nm0110139/", 1328 | "photo": "", 1329 | "name": "Tony Britten" 1330 | } 1331 | ], 1332 | "actors": [ 1333 | { 1334 | "url": "http://www.imdb.com/name/nm0000457/", 1335 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000457.jpg", 1336 | "name": { 1337 | "appeared_as": "Francis Bonar", 1338 | "original": "John Hurt" 1339 | } 1340 | }, 1341 | { 1342 | "url": "http://www.imdb.com/name/nm2301950/", 1343 | "photo": "https://yts.ag/assets/images/actors/thumb/nm2301950.jpg", 1344 | "name": { 1345 | "appeared_as": "Zoe", 1346 | "original": "Dakota Blue Richards" 1347 | } 1348 | }, 1349 | { 1350 | "url": "http://www.imdb.com/name/nm0040586/", 1351 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0040586.jpg", 1352 | "name": { 1353 | "appeared_as": "Peggy Law", 1354 | "original": "Eileen Atkins" 1355 | } 1356 | }, 1357 | { 1358 | "url": "http://www.imdb.com/name/nm1605114/", 1359 | "photo": "https://yts.ag/assets/images/actors/thumb/nm1605114.jpg", 1360 | "name": { 1361 | "appeared_as": "David Rose", 1362 | "original": "Christian McKay" 1363 | } 1364 | } 1365 | ], 1366 | "year": 2016, 1367 | "download": { 1368 | "links": { 1369 | "url": "https://yts.ag/torrent/download/B8C4BA8EA7C4B5D57BCD18E35F4FA0CD057F2C64", 1370 | "quality": "1080p" 1371 | } 1372 | }, 1373 | "screenshots": [ 1374 | "https://yts.ag/assets/images/movies/chicklit_2016/large-screenshot1.jpg", 1375 | "https://yts.ag/assets/images/movies/chicklit_2016/large-screenshot2.jpg", 1376 | "https://yts.ag/assets/images/movies/chicklit_2016/large-screenshot3.jpg" 1377 | ], 1378 | "trailer": "https://www.youtube.com/embed/7M9WEAnbpyY?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 1379 | }, 1380 | { 1381 | "rating": { 1382 | "Critics": "39%", 1383 | "Audience": "40%", 1384 | "imdb": 5.6, 1385 | "likes": 2 1386 | }, 1387 | "genres": [ 1388 | "Comedy", 1389 | "Crime", 1390 | "Musical", 1391 | "Mystery" 1392 | ], 1393 | "name": "The Singing Detective", 1394 | "cover": "https://yts.ag/assets/images/movies/the_singing_detective_2003/medium-cover.jpg", 1395 | "synopsis": "While hospitalized with an extreme case of psoriasis, novelist Dan Dark reworks his first book in his head. Feverish, paranoid and prone to musical outbreaks, he confuses himself with his protagonist, a detective investigating the murder of a prostitute in 1950s Los Angeles.", 1396 | "similar_movies": [ 1397 | { 1398 | "url": "https://yts.ag/movie/agent-cody-banks-2003", 1399 | "year": 2003, 1400 | "cover": "https://yts.ag/assets/images/movies/agent_cody_banks_2003/medium-cover.jpg", 1401 | "title": "Agent Cody Banks" 1402 | }, 1403 | { 1404 | "url": "https://yts.ag/movie/what-we-did-on-our-holiday-2014", 1405 | "year": 2014, 1406 | "cover": "https://yts.ag/assets/images/movies/What_We_Did_on_Our_Holiday_2014/medium-cover.jpg", 1407 | "title": "What We Did on Our Holiday" 1408 | }, 1409 | { 1410 | "url": "https://yts.ag/movie/whos-minding-the-store-1963", 1411 | "year": 1963, 1412 | "cover": "https://yts.ag/assets/images/movies/whos_minding_the_store_1963/medium-cover.jpg", 1413 | "title": "Who's Minding the Store?" 1414 | }, 1415 | { 1416 | "url": "https://yts.ag/movie/dirty-movie-2011", 1417 | "year": 2011, 1418 | "cover": "https://yts.ag/assets/images/movies/Dirty_Movie_2011/medium-cover.jpg", 1419 | "title": "Dirty Movie" 1420 | } 1421 | ], 1422 | "directors": [ 1423 | { 1424 | "url": "http://www.imdb.com/name/nm0330360/", 1425 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0330360.jpg", 1426 | "name": "Keith Gordon" 1427 | } 1428 | ], 1429 | "actors": [ 1430 | { 1431 | "url": "http://www.imdb.com/name/nm0000375/", 1432 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000375.jpg", 1433 | "name": { 1434 | "appeared_as": "Dan Dark", 1435 | "original": "Robert Downey Jr." 1436 | } 1437 | }, 1438 | { 1439 | "url": "http://www.imdb.com/name/nm0001303/", 1440 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0001303.jpg", 1441 | "name": { 1442 | "appeared_as": "Betty Dark / Hooker", 1443 | "original": "Carla Gugino" 1444 | } 1445 | }, 1446 | { 1447 | "url": "http://www.imdb.com/name/nm0000705/", 1448 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000705.jpg", 1449 | "name": { 1450 | "appeared_as": "Nicola / Nina / Blonde", 1451 | "original": "Robin Wright" 1452 | } 1453 | }, 1454 | { 1455 | "url": "http://www.imdb.com/name/nm0000154/", 1456 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000154.jpg", 1457 | "name": { 1458 | "appeared_as": "Dr. Gibbon", 1459 | "original": "Mel Gibson" 1460 | } 1461 | } 1462 | ], 1463 | "year": 2003, 1464 | "download": { 1465 | "links": { 1466 | "url": "https://yts.ag/torrent/download/1B838AA619DE93C7703EA8A11C812B1BECF9B4FA", 1467 | "quality": "1080p" 1468 | } 1469 | }, 1470 | "screenshots": [ 1471 | "https://yts.ag/assets/images/movies/the_singing_detective_2003/large-screenshot1.jpg", 1472 | "https://yts.ag/assets/images/movies/the_singing_detective_2003/large-screenshot2.jpg", 1473 | "https://yts.ag/assets/images/movies/the_singing_detective_2003/large-screenshot3.jpg" 1474 | ], 1475 | "trailer": "https://www.youtube.com/embed/wRbWvJqOc24?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 1476 | }, 1477 | { 1478 | "rating": { 1479 | "Critics": "92%", 1480 | "Audience": "49%", 1481 | "imdb": 6.4, 1482 | "likes": 6 1483 | }, 1484 | "genres": [ 1485 | "Drama" 1486 | ], 1487 | "name": "The Levelling", 1488 | "cover": "https://yts.ag/assets/images/movies/the_levelling_2016/medium-cover.jpg", 1489 | "synopsis": "Somerset, October 2014. When Clover Catto (Ellie Kendrick) receives a call telling her that her younger brother Harry (Joe Blakemore) is dead, she must return to her family farm and face the man she hasn't spoken to in years: her father Aubrey (David Troughton). She is shocked to discover her home changed forever by the devastating floods that destroyed the area six months earlier, and Aubrey a tormented shadow of his former self. As she learns what has been going on in her long absence she and her father forge a new understanding, but can it withstand the troubles that they face on the ravaged farm as well as the truth of what drove Harry to take his own life?", 1490 | "similar_movies": [ 1491 | { 1492 | "url": "https://yts.ag/movie/mcfarland-usa-2015", 1493 | "year": 2015, 1494 | "cover": "https://yts.ag/assets/images/movies/mcfarland_usa_2015/medium-cover.jpg", 1495 | "title": "McFarland, USA" 1496 | }, 1497 | { 1498 | "url": "https://yts.ag/movie/stiletto-2008", 1499 | "year": 2008, 1500 | "cover": "https://yts.ag/assets/images/movies/stiletto_2008/medium-cover.jpg", 1501 | "title": "Stiletto" 1502 | }, 1503 | { 1504 | "url": "https://yts.ag/movie/constantine-2005", 1505 | "year": 2005, 1506 | "cover": "https://yts.ag/assets/images/movies/Constantine_2005/medium-cover.jpg", 1507 | "title": "Constantine" 1508 | }, 1509 | { 1510 | "url": "https://yts.ag/movie/moulin-rouge-2001", 1511 | "year": 2001, 1512 | "cover": "https://yts.ag/assets/images/movies/Moulin_Rouge_2001/medium-cover.jpg", 1513 | "title": "Moulin Rouge!" 1514 | } 1515 | ], 1516 | "directors": [ 1517 | { 1518 | "url": "http://www.imdb.com/name/nm1463145/", 1519 | "photo": "", 1520 | "name": "Hope Dickson Leach" 1521 | } 1522 | ], 1523 | "actors": [], 1524 | "year": 2016, 1525 | "download": { 1526 | "links": { 1527 | "url": "https://yts.ag/torrent/download/9E54A2AC7F075CCA99E675DC18B2773472763203", 1528 | "quality": "1080p" 1529 | } 1530 | }, 1531 | "screenshots": [ 1532 | "https://yts.ag/assets/images/movies/the_levelling_2016/large-screenshot1.jpg", 1533 | "https://yts.ag/assets/images/movies/the_levelling_2016/large-screenshot2.jpg", 1534 | "https://yts.ag/assets/images/movies/the_levelling_2016/large-screenshot3.jpg" 1535 | ], 1536 | "trailer": "https://www.youtube.com/embed/uNC8SeWPiw4?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 1537 | }, 1538 | { 1539 | "rating": { 1540 | "Critics": "38%", 1541 | "Audience": "46%", 1542 | "imdb": 5.8, 1543 | "likes": 3 1544 | }, 1545 | "genres": [ 1546 | "Comedy", 1547 | "Horror", 1548 | "Sci-Fi" 1549 | ], 1550 | "name": "Detention", 1551 | "cover": "https://yts.ag/assets/images/movies/detention_2011/medium-cover.jpg", 1552 | "synopsis": "This comedy/horror movie centers about a group of teens who go to Grizzly Lake High School. When one of their classmates is killed by someone dressed up as 'Cinderhella' (a character from a popular horror movie), they all fall under suspicion, but when they all get detention, they try to work out who it is.", 1553 | "similar_movies": [ 1554 | { 1555 | "url": "https://yts.ag/movie/beerfest-2006", 1556 | "year": 2006, 1557 | "cover": "https://yts.ag/assets/images/movies/Beerfest_2006/medium-cover.jpg", 1558 | "title": "Beerfest" 1559 | }, 1560 | { 1561 | "url": "https://yts.ag/movie/mallrats-1995", 1562 | "year": 1995, 1563 | "cover": "https://yts.ag/assets/images/movies/Mallrats_1995/medium-cover.jpg", 1564 | "title": "Mallrats" 1565 | }, 1566 | { 1567 | "url": "https://yts.ag/movie/inbred-2011", 1568 | "year": 2011, 1569 | "cover": "https://yts.ag/assets/images/movies/Inbred_2011/medium-cover.jpg", 1570 | "title": "Inbred" 1571 | }, 1572 | { 1573 | "url": "https://yts.ag/movie/bad-words-2013", 1574 | "year": 2013, 1575 | "cover": "https://yts.ag/assets/images/movies/Bad_Words_2013/medium-cover.jpg", 1576 | "title": "Bad Words" 1577 | } 1578 | ], 1579 | "directors": [ 1580 | { 1581 | "url": "http://www.imdb.com/name/nm0994538/", 1582 | "photo": "", 1583 | "name": "Joseph Kahn" 1584 | } 1585 | ], 1586 | "actors": [ 1587 | { 1588 | "url": "http://www.imdb.com/name/nm1242688/", 1589 | "photo": "https://yts.ag/assets/images/actors/thumb/nm1242688.jpg", 1590 | "name": { 1591 | "appeared_as": "Clapton Davis", 1592 | "original": "Josh Hutcherson" 1593 | } 1594 | }, 1595 | { 1596 | "url": "http://www.imdb.com/name/nm0597480/", 1597 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0597480.jpg", 1598 | "name": { 1599 | "appeared_as": "Lead Singer of The Drunges", 1600 | "original": "Dominic Monaghan" 1601 | } 1602 | }, 1603 | { 1604 | "url": "http://www.imdb.com/name/nm0176981/", 1605 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0176981.jpg", 1606 | "name": { 1607 | "appeared_as": "Principal Verge", 1608 | "original": "Dane Cook" 1609 | } 1610 | }, 1611 | { 1612 | "url": "http://www.imdb.com/name/nm1682400/", 1613 | "photo": "https://yts.ag/assets/images/actors/thumb/nm1682400.jpg", 1614 | "name": { 1615 | "appeared_as": "Ione", 1616 | "original": "Spencer Locke" 1617 | } 1618 | } 1619 | ], 1620 | "year": 2011, 1621 | "download": { 1622 | "links": { 1623 | "url": "https://yts.ag/torrent/download/23E8EC3C1D2EF2CA2D7B8FC2456764F4C11AB9FD", 1624 | "quality": "1080p" 1625 | } 1626 | }, 1627 | "screenshots": [ 1628 | "https://yts.ag/assets/images/movies/detention_2011/large-screenshot1.jpg", 1629 | "https://yts.ag/assets/images/movies/detention_2011/large-screenshot2.jpg", 1630 | "https://yts.ag/assets/images/movies/detention_2011/large-screenshot3.jpg" 1631 | ], 1632 | "trailer": "https://www.youtube.com/embed/G4PFz9gIKKM?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 1633 | }, 1634 | { 1635 | "rating": { 1636 | "Critics": "100%", 1637 | "Audience": "38%", 1638 | "imdb": 5.8, 1639 | "likes": 2 1640 | }, 1641 | "genres": [ 1642 | "Horror", 1643 | "Romance", 1644 | "Sci-Fi", 1645 | "Thriller" 1646 | ], 1647 | "name": "The Man from Planet X", 1648 | "cover": "https://yts.ag/assets/images/movies/the_man_from_planet_x_1951/medium-cover.jpg", 1649 | "synopsis": "To study a rogue planet heading for a near-miss with Earth, Prof. Elliot sets up an observatory on the foggy moors of a remote Scottish island, with his pretty daughter and Dr. Mears, a former student with a shady past. Soon after arrival of reporter John Lawrence, a ship from Planet X just happens to land near the observatory. Is the visitor (who actually looks alien) benevolent? What are Mears' real motives for trying to communicate with it?", 1650 | "similar_movies": [ 1651 | { 1652 | "url": "https://yts.ag/movie/coherence-2013", 1653 | "year": 2013, 1654 | "cover": "https://yts.ag/assets/images/movies/Coherence_2013/medium-cover.jpg", 1655 | "title": "Coherence" 1656 | }, 1657 | { 1658 | "url": "https://yts.ag/movie/tormented-2014", 1659 | "year": 2014, 1660 | "cover": "https://yts.ag/assets/images/movies/berkshire_county_2014/medium-cover.jpg", 1661 | "title": "Tormented" 1662 | }, 1663 | { 1664 | "url": "https://yts.ag/movie/toxin-2014", 1665 | "year": 2014, 1666 | "cover": "https://yts.ag/assets/images/movies/toxin_2014/medium-cover.jpg", 1667 | "title": "Toxin" 1668 | }, 1669 | { 1670 | "url": "https://yts.ag/movie/panic-button-2011", 1671 | "year": 2011, 1672 | "cover": "https://yts.ag/assets/images/movies/Panic_Button_2011/medium-cover.jpg", 1673 | "title": "Panic Button" 1674 | } 1675 | ], 1676 | "directors": [ 1677 | { 1678 | "url": "http://www.imdb.com/name/nm0880618/", 1679 | "photo": "", 1680 | "name": "Edgar G. Ulmer" 1681 | } 1682 | ], 1683 | "actors": [ 1684 | { 1685 | "url": "http://www.imdb.com/name/nm0332390/", 1686 | "photo": "", 1687 | "name": { 1688 | "appeared_as": "Frightened villager", 1689 | "original": "Harold Gould" 1690 | } 1691 | }, 1692 | { 1693 | "url": "http://www.imdb.com/name/nm0769974/", 1694 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0769974.jpg", 1695 | "name": { 1696 | "appeared_as": "Dr. Mears", 1697 | "original": "William Schallert" 1698 | } 1699 | } 1700 | ], 1701 | "year": 1951, 1702 | "download": { 1703 | "links": { 1704 | "url": "https://yts.ag/torrent/download/BCCC7C244A6DCAF89ADFC0F924CC8ED9208661E0", 1705 | "quality": "1080p" 1706 | } 1707 | }, 1708 | "screenshots": [ 1709 | "https://yts.ag/assets/images/movies/the_man_from_planet_x_1951/large-screenshot1.jpg", 1710 | "https://yts.ag/assets/images/movies/the_man_from_planet_x_1951/large-screenshot2.jpg", 1711 | "https://yts.ag/assets/images/movies/the_man_from_planet_x_1951/large-screenshot3.jpg" 1712 | ], 1713 | "trailer": "https://www.youtube.com/embed/NTyfzd-sg3A?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 1714 | }, 1715 | { 1716 | "rating": { 1717 | "Critics": "27%", 1718 | "Audience": "28%", 1719 | "imdb": 5.3, 1720 | "likes": 3 1721 | }, 1722 | "genres": [ 1723 | "Thriller" 1724 | ], 1725 | "name": "Drone", 1726 | "cover": "https://yts.ag/assets/images/movies/drone_2017/medium-cover.jpg", 1727 | "synopsis": "Neil (Sean Bean) is a private drone contractor who spends his workdays flying covert missions then returns to a family life of suburban mediocrity - without his wife or son knowing about his secret life - until a whistle-blowing site exposes him to a deadly threat. Believing he is responsible for the deaths of his wife and child, an enigmatic Pakistani businessman (Patrick Sabongui) tracks him down, leading to a harrowing confrontation.", 1728 | "similar_movies": [ 1729 | { 1730 | "url": "https://yts.ag/movie/mercury-rising-1998", 1731 | "year": 1998, 1732 | "cover": "https://yts.ag/assets/images/movies/Mercury_Rising_1998/medium-cover.jpg", 1733 | "title": "Mercury Rising" 1734 | }, 1735 | { 1736 | "url": "https://yts.ag/movie/an-acrid-yarn-2010", 1737 | "year": 2010, 1738 | "cover": "https://yts.ag/assets/images/movies/An_Acrid_Yarn_2010/medium-cover.jpg", 1739 | "title": "An Acrid Yarn" 1740 | }, 1741 | { 1742 | "url": "https://yts.ag/movie/the-chamber-2016", 1743 | "year": 2016, 1744 | "cover": "https://yts.ag/assets/images/movies/the_chamber_2016/medium-cover.jpg", 1745 | "title": "The Chamber" 1746 | }, 1747 | { 1748 | "url": "https://yts.ag/movie/one-in-the-chamber-2012", 1749 | "year": 2012, 1750 | "cover": "https://yts.ag/assets/images/movies/One_in_the_Chamber_2012/medium-cover.jpg", 1751 | "title": "One in the Chamber" 1752 | } 1753 | ], 1754 | "directors": [ 1755 | { 1756 | "url": "http://www.imdb.com/name/nm1028302/", 1757 | "photo": "", 1758 | "name": "Jason Bourque" 1759 | } 1760 | ], 1761 | "actors": [ 1762 | { 1763 | "url": "http://www.imdb.com/name/nm0000293/", 1764 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0000293.jpg", 1765 | "name": { 1766 | "appeared_as": "Neil Wistin", 1767 | "original": "Sean Bean" 1768 | } 1769 | }, 1770 | { 1771 | "url": "http://www.imdb.com/name/nm0005203/", 1772 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0005203.jpg", 1773 | "name": { 1774 | "appeared_as": "Ellen Wistin", 1775 | "original": "Mary McCormack" 1776 | } 1777 | }, 1778 | { 1779 | "url": "http://www.imdb.com/name/nm0601376/", 1780 | "photo": "https://yts.ag/assets/images/actors/thumb/nm0601376.jpg", 1781 | "name": { 1782 | "appeared_as": "Gary", 1783 | "original": "Joel David Moore" 1784 | } 1785 | }, 1786 | { 1787 | "url": "http://www.imdb.com/name/nm1150775/", 1788 | "photo": "", 1789 | "name": { 1790 | "appeared_as": "Imir Shaw", 1791 | "original": "Patrick Sabongui" 1792 | } 1793 | } 1794 | ], 1795 | "year": 2017, 1796 | "download": { 1797 | "links": { 1798 | "url": "https://yts.ag/torrent/download/3C30258BC6CFCD7CB10160A9852083937DF5F47E", 1799 | "quality": "1080p" 1800 | } 1801 | }, 1802 | "screenshots": [ 1803 | "https://yts.ag/assets/images/movies/drone_2017/large-screenshot1.jpg", 1804 | "https://yts.ag/assets/images/movies/drone_2017/large-screenshot2.jpg", 1805 | "https://yts.ag/assets/images/movies/drone_2017/large-screenshot3.jpg" 1806 | ], 1807 | "trailer": "https://www.youtube.com/embed/DZbnNMyO-sU?rel=0&wmode=transparent&border=0&autoplay=1&iv_load_policy=3" 1808 | } 1809 | ] 1810 | -------------------------------------------------------------------------------- /data/ebay/Deals.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "category": "Cell Phones & Smartphones", 4 | "watching": "299", 5 | "url": "http://www.ebay.com/itm/New-Samsung-Note-5-SM-N920T-32GB-for-T-Mobile-/201957201115?_trkparms=5373%3A0%7C5374%3AFeatured", 6 | "photo": "https://i.ebayimg.com/images/g/ZaIAAOSwCkZZRDNH/s-l300.jpg", 7 | "price": { 8 | "current": "US $269.99", 9 | "save": "US $470.00 (64% off)", 10 | "original": "US $739.99" 11 | }, 12 | "title": "New Samsung Note 5 SM-N920T 32GB for T-Mobile", 13 | "breadcrumb": "Cell Phones & Accessories > Cell Phones & Smartphones", 14 | "condition": "New other (see details)" 15 | }, 16 | { 17 | "category": "See more DuroMax XP4850EH Generator", 18 | "watching": "10036", 19 | "url": "http://www.ebay.com/itm/DuroMax-XP4850EH-Hybrid-Portable-Dual-Fuel-Propane-Gas-Camping-RV-Generator-/171503114601?_trkparms=5373%3A0%7C5374%3AFeatured", 20 | "photo": "https://i.ebayimg.com/images/g/J9MAAOSwqu9VSPfv/s-l300.jpg", 21 | "price": { 22 | "current": "US $299.99", 23 | "save": "$700.00 (70% off)", 24 | "original": "$999.99" 25 | }, 26 | "title": "DuroMax XP4850EH Hybrid Portable Dual Fuel Propane / Gas Camping RV Generator", 27 | "breadcrumb": "Home & Garden > Tools > Generators > See more DuroMax XP4850EH Generator", 28 | "condition": "New" 29 | }, 30 | { 31 | "category": "See more iTunes Code for Only - Fast Email Delivery", 32 | "watching": "289", 33 | "url": "http://www.ebay.com/itm/100-iTunes-Code-for-only-85-Fast-Email-Delivery-/263087455360?_trkparms=5373%3A0%7C5374%3AFeatured", 34 | "photo": "https://i.ebayimg.com/images/g/YSwAAOSwx6pYnIGJ/s-l300.jpg", 35 | "price": { 36 | "current": "US $85.00", 37 | "save": "$15.00 (15% off)", 38 | "original": "$100.00" 39 | }, 40 | "title": "$100 iTunes Code for only $85 - Fast Email Delivery", 41 | "breadcrumb": "Gift Cards & Coupons > Digital Gifts", 42 | "condition": "--" 43 | }, 44 | { 45 | "category": "See more EBAY & Perth MINT 1oz Gold Bar .9999 Fine in A...", 46 | "watching": "2864", 47 | "url": "http://www.ebay.com/itm/eBay-Perth-Mint-1oz-Gold-Bar-9999-Fine-in-Assay-/331754434985?_trkparms=5373%3A0%7C5374%3AFeatured", 48 | "photo": "https://i.ebayimg.com/images/g/OlcAAOSwLN5Wl~aH/s-l300.jpg", 49 | "price": "US $1,257.00", 50 | "title": "eBay & Perth Mint 1oz Gold Bar .9999 Fine in Assay", 51 | "breadcrumb": "Coins & Paper Money > Bullion > Gold > Bars & Rounds > See more EBAY & Perth MINT 1oz Gold Bar .9999 Fine in A...", 52 | "condition": "--" 53 | }, 54 | { 55 | "category": "Cell Phones & Smartphones", 56 | "watching": "2366", 57 | "url": "http://www.ebay.com/itm/Samsung-G930-Galaxy-S7-32GB-Android-Verizon-Wireless-4G-LTE-WiFi-Smartphone-/361594807525?_trkparms=5373%3A0%7C5374%3AFeatured", 58 | "photo": "https://i.ebayimg.com/images/g/0C4AAOSwMNxXXwfV/s-l300.jpg", 59 | "price": "US $224.99", 60 | "title": "Samsung G930 Galaxy S7 32GB Android Verizon Wireless 4G LTE WiFi Smartphone", 61 | "breadcrumb": "Cell Phones & Accessories > Cell Phones & Smartphones", 62 | "condition": "Seller refurbished" 63 | }, 64 | { 65 | "category": "See more Apmex 1 Oz Silver Bar (Lot of 10)", 66 | "watching": "2643", 67 | "url": "http://www.ebay.com/itm/SPECIAL-PRICE-1-oz-APMEX-Silver-Bar-999-Fine-Lot-of-10-SKU-81774-/121823291473?_trkparms=5373%3A0%7C5374%3AFeatured", 68 | "photo": "https://i.ebayimg.com/images/g/agAAAOSwI-BWOhcw/s-l300.jpg", 69 | "price": "US $172.70", 70 | "title": "SPECIAL PRICE! 1 oz APMEX Silver Bar .999 Fine Lot of 10 - SKU #81774", 71 | "breadcrumb": "Coins & Paper Money > Bullion > Silver > Bars & Rounds > See more Apmex 1 Oz Silver Bar (Lot of 10)", 72 | "condition": "--" 73 | }, 74 | { 75 | "category": "Blinds & Shades", 76 | "watching": "1117", 77 | "url": "http://www.ebay.com/itm/Window-Blinds-Mini-Blind-1-Slat-Vinyl-Venetian-Blinds-Black-White-Beige-Gray-/391522932410?_trkparms=5373%3A0%7C5374%3AFeatured", 78 | "photo": "https://i.ebayimg.com/images/g/d7QAAOSwIgNXoQG7/s-l300.jpg", 79 | "price": { 80 | "current": "US $18.99", 81 | "save": "US $63.00 (77% off)", 82 | "original": "US $81.99" 83 | }, 84 | "title": "Window Blinds Mini Blind 1\" Slat Vinyl Venetian Blinds - Black White Beige Gray", 85 | "breadcrumb": "Home & Garden > Window Treatments & Hardware > Blinds & Shades", 86 | "condition": "New" 87 | }, 88 | { 89 | "category": "Bars & Rounds", 90 | "watching": "59", 91 | "url": "http://www.ebay.com/itm/Daily-Deal-Lot-of-20-5-Troy-oz-Sunshine-Mint-999-Fine-Silver-Bar-Mint-Mark-/201551942470?_trkparms=5373%3A0%7C5374%3AFeatured", 92 | "photo": "https://i.ebayimg.com/images/g/z4cAAOSwLpdW~AC5/s-l300.jpg", 93 | "price": "US $1,711.42", 94 | "title": "Daily Deal - Lot of 20 - 5 Troy oz Sunshine Mint .999 Fine Silver Bar Mint Mark", 95 | "breadcrumb": "Coins & Paper Money > Bullion > Silver > Bars & Rounds", 96 | "condition": "--" 97 | }, 98 | { 99 | "category": "Bicycles", 100 | "watching": "1483", 101 | "url": "http://www.ebay.com/itm/Diamondback-2017-Trace-Mountain-Bike-Blue-/222565292592?_trkparms=5373%3A0%7C5374%3AFeatured", 102 | "photo": "https://i.ebayimg.com/images/g/SQoAAOSwUIhZX9Jw/s-l300.jpg", 103 | "price": { 104 | "current": "US $249.99", 105 | "save": "US $350.00 (58% off)", 106 | "original": "US $599.99" 107 | }, 108 | "title": "Diamondback 2017 Trace Mountain Bike Blue", 109 | "breadcrumb": "Sporting Goods > Cycling > Bicycles", 110 | "condition": "New" 111 | }, 112 | { 113 | "category": "See more 20 Oz .999 Silver Bullion Long Cast Bar by Sco...", 114 | "watching": "781", 115 | "url": "http://www.ebay.com/itm/SPECIAL-PRICE-20-oz-999-Silver-Bullion-Long-Cast-Bar-by-Scottsdale-Mint-A397-/142035790539?_trkparms=5373%3A0%7C5374%3AFeatured", 116 | "photo": "https://i.ebayimg.com/images/g/QcQAAOSw8gVX9YEm/s-l300.jpg", 117 | "price": "US $345.40", 118 | "title": "SPECIAL PRICE! 20 oz .999 Silver Bullion Long Cast Bar by Scottsdale Mint #A397", 119 | "breadcrumb": "Coins & Paper Money > Bullion > Silver > Bars & Rounds > See more 20 Oz .999 Silver Bullion Long Cast Bar by Sco...", 120 | "condition": "--" 121 | }, 122 | { 123 | "category": "See more 1oz Gold American Eagle (random Date) BU", 124 | "watching": "1276", 125 | "url": "http://www.ebay.com/itm/50-1oz-Gold-American-Eagle-Random-Date-BU-/332137627214?_trkparms=5373%3A0%7C5374%3AFeatured", 126 | "photo": "https://i.ebayimg.com/images/g/OCwAAOSwdjNZDJup/s-l300.jpg", 127 | "price": "US $1,271.00", 128 | "title": "$50 1oz Gold American Eagle (Random Date) BU", 129 | "breadcrumb": "Coins & Paper Money > Bullion > Gold > Coins > See more 1oz Gold American Eagle (random Date) BU", 130 | "condition": "--" 131 | }, 132 | { 133 | "category": "Gift Cards", 134 | "watching": "160", 135 | "url": "http://www.ebay.com/itm/100-CVS-Gift-Card-For-Only-90-FREE-Mail-Delivery-/112472072160?_trkparms=5373%3A0%7C5374%3AFeatured", 136 | "photo": "https://i.ebayimg.com/images/g/iZwAAOSwfpVZMrzo/s-l300.jpg", 137 | "price": { 138 | "current": "US $90.00", 139 | "save": "$10.00 (10% off)", 140 | "original": "$100.00" 141 | }, 142 | "title": "$100 CVS Gift Card For Only $90!! - FREE Mail Delivery", 143 | "breadcrumb": "Gift Cards & Coupons > Gift Cards", 144 | "condition": "--" 145 | }, 146 | { 147 | "category": "Cell Phones & Smartphones", 148 | "watching": "1587", 149 | "url": "http://www.ebay.com/itm/BRAND-NEW-LG-G5-H830T-32GB-T-Mobile-GSM-Unlocked-4G-LTE-Smartphone-/352049253484?_trkparms=5373%3A0%7C5374%3AFeatured", 150 | "photo": "https://i.ebayimg.com/images/g/49cAAOSwSzRZTSQE/s-l300.jpg", 151 | "price": "US $199.99", 152 | "title": "BRAND NEW LG G5 H830T 32GB T-Mobile + GSM Unlocked 4G LTE Smartphone", 153 | "breadcrumb": "Cell Phones & Accessories > Cell Phones & Smartphones", 154 | "condition": "New" 155 | }, 156 | { 157 | "category": "See more 100 Oz Royal Canadian MINT RCM Silver Bar .999...", 158 | "watching": "579", 159 | "url": "http://www.ebay.com/itm/100-oz-Royal-Canadian-Mint-RCM-9999-Fine-Silver-Bar-/401184448501?_trkparms=5373%3A0%7C5374%3AFeatured", 160 | "photo": "https://i.ebayimg.com/images/g/p78AAOSwFlxZZ-5y/s-l300.jpg", 161 | "price": "US $1,679.00", 162 | "title": "100 oz Royal Canadian Mint (RCM) .9999 Fine Silver Bar", 163 | "breadcrumb": "Coins & Paper Money > Bullion > Silver > Bars & Rounds > See more 100 Oz Royal Canadian MINT RCM Silver Bar .999...", 164 | "condition": "--" 165 | }, 166 | { 167 | "category": "See more Invicta 6412 Python Swiss Chronograph Gunmetal...", 168 | "watching": "886", 169 | "url": "http://www.ebay.com/itm/Invicta-Mens-Python-Collection-Chronograph-Watch-6412-/371912616185?_trkparms=5373%3A0%7C5374%3AFeatured", 170 | "photo": "https://i.ebayimg.com/images/g/nysAAOSwkttZZO8J/s-l300.jpg", 171 | "price": { 172 | "current": "US $49.99", 173 | "save": "$545.01 (91% off)", 174 | "original": "$595.00" 175 | }, 176 | "title": "Invicta Men's Python Collection Chronograph Watch 6412", 177 | "breadcrumb": "Jewelry & Watches > Watches, Parts & Accessories > Wristwatches > See more Invicta 6412 Python Swiss Chronograph Gunmetal...", 178 | "condition": "New with tags" 179 | }, 180 | { 181 | "category": "Cell Phones & Smartphones", 182 | "watching": "2028", 183 | "url": "http://www.ebay.com/itm/Samsung-Galaxy-S7-Edge-Factory-Unlocked-Smartphone-G-935P-GSM-/272694113033?_trkparms=5373%3A0%7C5374%3AFeatured", 184 | "photo": "https://i.ebayimg.com/images/g/yU8AAOSwjL5ZIhvK/s-l300.jpg", 185 | "price": "US $274.99", 186 | "title": "Samsung Galaxy S7 Edge Factory Unlocked Smartphone G-935P GSM", 187 | "breadcrumb": "Cell Phones & Accessories > Cell Phones & Smartphones", 188 | "condition": "Seller refurbished" 189 | }, 190 | { 191 | "category": "Cell Phones & Smartphones", 192 | "watching": "1683", 193 | "url": "http://www.ebay.com/itm/Apple-iPhone-7-PLUS-128GB-PRODUCT-RED-All-Other-Colors-Brand-New-USA-Model-/162488170439?_trkparms=5373%3A0%7C5374%3AFeatured", 194 | "photo": "https://i.ebayimg.com/images/g/c3EAAOSwceNZR9wY/s-l300.png", 195 | "price": { 196 | "current": "US $844.00", 197 | "save": "US $25.00 (3% off)", 198 | "original": "US $869.00" 199 | }, 200 | "title": "Apple iPhone 7 PLUS 128GB (PRODUCT) RED & All Other Colors - Brand New USA Model", 201 | "breadcrumb": "Cell Phones & Accessories > Cell Phones & Smartphones", 202 | "condition": "New" 203 | }, 204 | { 205 | "category": "PC Desktops & All-In-Ones", 206 | "watching": "6", 207 | "url": "http://www.ebay.com/itm/HP-24-g014-23-8-Touchscreen-AIO-Intel-Core-i3-6100U-2-3GHz-8GB-DDR4-1TB-Win10-/253040848792?_trkparms=5373%3A0%7C5374%3AFeatured", 208 | "photo": "https://i.ebayimg.com/images/g/g4sAAOSwWdZZZUy7/s-l300.jpg", 209 | "price": { 210 | "current": "US $400.00", 211 | "save": "$400.99 (50% off)", 212 | "original": "$800.99" 213 | }, 214 | "title": "HP 24-g014 23.8\" Touchscreen AIO Intel Core i3-6100U 2.3GHz 8GB DDR4 1TB Win10", 215 | "breadcrumb": "Computers/Tablets & Networking > Desktops & All-In-Ones > PC Desktops & All-In-Ones", 216 | "condition": "Manufacturer refurbished" 217 | }, 218 | { 219 | "category": "See more Apple MacBook Air 13.3\" Laptop, 128GB - MQD32L...", 220 | "watching": "181", 221 | "url": "http://www.ebay.com/itm/Apple-13-3-MacBook-Air-Mid-2017-MQD32LL-A-/201987044798?_trkparms=5373%3A0%7C5374%3AFeatured", 222 | "photo": "https://i.ebayimg.com/images/g/f3YAAOSwyWZZPteC/s-l300.jpg", 223 | "price": { 224 | "current": "US $799.99", 225 | "save": "$199.01 (19% off)", 226 | "original": "$999.00" 227 | }, 228 | "title": "Apple 13.3\" MacBook Air (Mid 2017) MQD32LL/A", 229 | "breadcrumb": "Computers/Tablets & Networking > Laptops & Netbooks > Apple Laptops > See more Apple MacBook Air 13.3\" Laptop, 128GB - MQD32L...", 230 | "condition": "New" 231 | }, 232 | { 233 | "category": "Bars & Rounds", 234 | "watching": "64", 235 | "url": "http://www.ebay.com/itm/Sale-Price-1-oz-Gold-Bar-Pamp-Suisse-New-Design-In-Assay-/152587785365?_trkparms=5373%3A0%7C5374%3AFeatured", 236 | "photo": "https://i.ebayimg.com/images/g/FjUAAOSwbtVZQ3CY/s-l300.jpg", 237 | "price": "US $1,256.40", 238 | "title": "Sale Price - 1 oz Gold Bar - Pamp Suisse - New Design (In Assay)", 239 | "breadcrumb": "Coins & Paper Money > Bullion > Gold > Bars & Rounds", 240 | "condition": "--" 241 | } 242 | ] 243 | -------------------------------------------------------------------------------- /data/ebay/Products.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "category": "Contemporary Manufacture", 4 | "title": "ESPN All Sports Trivia Challenge Board Game 1500 Questions 10 categories 13+ NEW", 5 | "url": "http://www.ebay.com/itm/ESPN-All-Sports-Trivia-Challenge-Board-Game-1500-Questions-10-categories-13-NEW-/362026335370?hash=item544a737c8a:g:AfUAAOSw2xRYcvRd", 6 | "photo": "https://i.ebayimg.com/images/g/AfUAAOSw2xRYcvRd/s-l300.jpg", 7 | "price": { 8 | "current": "US $12.32", 9 | "save": "$2.17 (15% off)", 10 | "original": "US $14.49" 11 | }, 12 | "breadcrumb": "Toys & Hobbies > Games > Board & Traditional Games > Contemporary Manufacture", 13 | "condition": "New" 14 | }, 15 | { 16 | "category": "See more Smead All-in-one Income Tax Organizer 12 Pocke...", 17 | "title": "Smead Categories All-in-One Income Tax Organizer, 12 Pockets, Flap and Cord", 18 | "url": "http://www.ebay.com/itm/Smead-Categories-All-in-One-Income-Tax-Organizer-12-Pockets-Flap-and-Cord-/262956117129?epid=1500055394&hash=item3d3967ec89:g:5HMAAOSwx2dYIuLj", 19 | "photo": "https://i.ebayimg.com/images/g/5HMAAOSwx2dYIuLj/s-l300.jpg", 20 | "price": "US $28.49", 21 | "breadcrumb": "Business & Industrial > Office > Office Supplies > Filing, Storage & Binding > Files & Supplies > See more Smead All-in-one Income Tax Organizer 12 Pocke...", 22 | "condition": "New" 23 | }, 24 | { 25 | "category": "DVDs & Blu-ray Discs", 26 | "title": "The West Wing For Your Consideration In All Categories (DVD 2003) Comedy NEW", 27 | "url": "http://www.ebay.com/itm/The-West-Wing-For-Your-Consideration-In-All-Categories-DVD-2003-Comedy-NEW-/172766430036?hash=item2839ae8354:g:FB4AAOSwPCVX7civ", 28 | "photo": "https://i.ebayimg.com/images/g/FB4AAOSwPCVX7civ/s-l300.jpg", 29 | "price": "US $12.99", 30 | "breadcrumb": "DVDs & Movies > DVDs & Blu-ray Discs", 31 | "condition": "Brand New" 32 | }, 33 | { 34 | "category": "Other Health & Life Science", 35 | "title": "ENVIRONMENTAL CHAMBER ALL SIZES MANUFACTURER INTERNATIONAL Categories 7", 36 | "url": "http://www.ebay.com/itm/ENVIRONMENTAL-CHAMBER-ALL-SIZES-MANUFACTURER-INTERNATIONAL-Categories-7-/282570745884?hash=item41ca87681c:g:VS0AAOSw54xUU9g0", 37 | "photo": "https://i.ebayimg.com/images/g/VS0AAOSw54xUU9g0/s-l300.jpg", 38 | "price": "GBP 2,499.00", 39 | "breadcrumb": "Business & Industrial > Healthcare, Lab & Life Science > Other Health & Life Science", 40 | "condition": "New" 41 | }, 42 | { 43 | "category": "Magazine Back Issues", 44 | "title": "Hollywood Reporter 2000 june 5 ARABIAN NIGHTS, EMMY CONSIDERATION ALL CATEGORIES", 45 | "url": "http://www.ebay.com/itm/Hollywood-Reporter-2000-june-5-ARABIAN-NIGHTS-EMMY-CONSIDERATION-ALL-CATEGORIES-/253051210660?hash=item3aeb070ba4:g:tuIAAOSw3h1ZQbBZ", 46 | "photo": "https://i.ebayimg.com/images/g/tuIAAOSw3h1ZQbBZ/s-l300.jpg", 47 | "price": "US $14.49", 48 | "breadcrumb": "Books > Magazine Back Issues", 49 | "condition": "Good" 50 | }, 51 | { 52 | "category": "Copy & Document Holders", 53 | "title": "Vintage Sort All Sorter 23\" Long 5 Sorting Categories Made in the USA", 54 | "url": "http://www.ebay.com/itm/Vintage-Sort-All-Sorter-23-Long-5-Sorting-Categories-Made-in-the-USA-/282261421333?hash=item41b8177d15:g:4z8AAOSwj85YMH6G", 55 | "photo": "https://i.ebayimg.com/images/g/4z8AAOSwj85YMH6G/s-l300.jpg", 56 | "price": { 57 | "current": "US $14.24", 58 | "save": "$0.75 (5% off)", 59 | "original": "US $14.99" 60 | }, 61 | "breadcrumb": "Business & Industrial > Office > Office Supplies > Desk Accessories > Copy & Document Holders", 62 | "condition": "Used" 63 | }, 64 | { 65 | "category": "Nonfiction", 66 | "title": "The Fig Tree by Blake Terry - Book - Hard Cover - Signed Books-(All Categories)", 67 | "url": "http://www.ebay.com/itm/The-Fig-Tree-by-Blake-Terry-Book-Hard-Cover-Signed-Books-All-Categories-/182396832002?hash=item2a77b2c902:g:ypkAAOSw6n5XqsZv", 68 | "photo": "https://i.ebayimg.com/images/g/ypkAAOSw6n5XqsZv/s-l300.jpg", 69 | "price": "AU $19.90", 70 | "breadcrumb": "Books > Nonfiction", 71 | "condition": "Very Good" 72 | }, 73 | { 74 | "category": "See more Graduate Texts in Mathematics: Rings and Categ...", 75 | "title": "Rings and Categories of Modules (Graduate Texts in Mathematics), All Amazon Upgr", 76 | "url": "http://www.ebay.com/itm/Rings-and-Categories-of-Modules-Graduate-Texts-in-Mathematics-All-Amazon-Upgr-/192059063227?epid=480290&hash=item2cb79cbbbb:g:3mAAAOSwAYtWIhxm", 77 | "photo": "https://i.ebayimg.com/00/s/NDAwWDI2NA==/z/iRwAAOSw2gxYv04T/$_35.JPG?set_id=89040003C1", 78 | "price": "US $33.27", 79 | "breadcrumb": "Books > Textbooks, Education > See more Graduate Texts in Mathematics: Rings and Categ...", 80 | "condition": "Very Good" 81 | }, 82 | { 83 | "category": "Other Household Ads", 84 | "watching": "1", 85 | "url": "http://www.ebay.com/itm/Restortion-Hardware-13-Magazines-Set-All-Categories-Source-Book-/321992265411?hash=item4af83c0ec3:g:xv4AAOSwFMZWqnQf", 86 | "photo": "https://i.ebayimg.com/images/g/xv4AAOSwFMZWqnQf/s-l300.jpg", 87 | "price": "US $40.00", 88 | "title": "Restortion Hardware 13 Magazines Set: All Categories Source Book", 89 | "breadcrumb": "Collectibles > Advertising > Household > Other Household Ads", 90 | "condition": "Used" 91 | }, 92 | { 93 | "category": "Proof Sets", 94 | "watching": "1", 95 | "url": "http://www.ebay.com/itm/1956-PROOF-SET-VERY-ATTRACTIVE-COINS-Quarter-Penny-Dime-Nickle-All-Categories-/282032871076?hash=item41aa7816a4:g:j9MAAOSwJQdXCPNI", 96 | "photo": "https://i.ebayimg.com/images/g/j9MAAOSwJQdXCPNI/s-l300.jpg", 97 | "price": "US $68.00", 98 | "title": "1956 PROOF SET-VERY ATTRACTIVE COINS Quarter Penny Dime Nickle All Categories", 99 | "breadcrumb": "Coins & Paper Money > Coins: US > Proof Sets", 100 | "condition": "--" 101 | }, 102 | { 103 | "category": "Other Office Filing & Binding", 104 | "title": "Amberg Sort-All Sorter 40655 5 Categories 31 Flexible Leaves", 105 | "url": "http://www.ebay.com/itm/Amberg-Sort-All-Sorter-40655-5-Categories-31-Flexible-Leaves-/282549386431?hash=item41c9417cbf:g:xI4AAOSw3h1ZVVQG", 106 | "photo": "https://i.ebayimg.com/images/g/xI4AAOSw3h1ZVVQG/s-l300.jpg", 107 | "price": "US $19.99", 108 | "breadcrumb": "Business & Industrial > Office > Office Supplies > Filing, Storage & Binding > Other Office Filing & Binding", 109 | "condition": "Used" 110 | } 111 | ] 112 | -------------------------------------------------------------------------------- /mss/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skynetbinary/major-scrapy-spiders/e532275716d84d639c4dcda0e5450de2cb17788b/mss/__init__.py -------------------------------------------------------------------------------- /mss/items.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Define here the models for your scraped items 4 | # 5 | # See documentation in: 6 | # http://doc.scrapy.org/en/latest/topics/items.html 7 | 8 | import scrapy 9 | 10 | 11 | class MssItem(scrapy.Item): 12 | # define the fields for your item here like: 13 | # name = scrapy.Field() 14 | pass 15 | -------------------------------------------------------------------------------- /mss/pipelines.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Define your item pipelines here 4 | # 5 | # Don't forget to add your pipeline to the ITEM_PIPELINES setting 6 | # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html 7 | 8 | 9 | class MssPipeline(object): 10 | def process_item(self, item, spider): 11 | return item 12 | -------------------------------------------------------------------------------- /mss/settings.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Scrapy settings for mss project 4 | # 5 | # For simplicity, this file contains only the most important settings by 6 | # default. All the other settings are documented here: 7 | # 8 | # http://doc.scrapy.org/en/latest/topics/settings.html 9 | # 10 | 11 | BOT_NAME = 'mss' 12 | 13 | SPIDER_MODULES = ['mss.spiders'] 14 | NEWSPIDER_MODULE = 'mss.spiders' 15 | 16 | # Crawl responsibly by identifying yourself (and your website) on the user-agent 17 | USER_AGENT = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0" 18 | -------------------------------------------------------------------------------- /mss/spiders/__init__.py: -------------------------------------------------------------------------------- 1 | # This package will contain the spiders of your Scrapy project 2 | # 3 | # Please refer to the documentation for information on how to create and manage 4 | # your spiders. 5 | -------------------------------------------------------------------------------- /mss/spiders/ebay/__init__.py: -------------------------------------------------------------------------------- 1 | '''MSS: Ebay Base Spider Class''' 2 | from scrapy import Spider 3 | from scrapy.shell import inspect_response 4 | 5 | from mss.utils.strings import process_string 6 | 7 | 8 | class BaseSpider(Spider): 9 | '''MSS: Ebay Base Spider Class''' 10 | name = 'EbayBaseSpider' 11 | 12 | def parse(self, response): 13 | raise NotImplementedError 14 | 15 | def parse_item(self, response): 16 | '''Parse specific ebay item''' 17 | price = (response.css('#prcIsum::text').extract() or 18 | response.css('#mm-saleDscPrc::text').extract()) 19 | # Ignore item if current price is not found. 20 | if not price: 21 | return 22 | price_original = (response.css('#orgPrc::text').extract() or 23 | response.css('#mm-saleOrgPrc::text').extract()) or '' 24 | if price_original: 25 | price_original = process_string(price_original[0]) 26 | price_save = (response.css('#youSaveSTP::text').extract() or 27 | response.css('#mm-saleAmtSavedPrc::text').extract()) or '' 28 | if price_save: 29 | price_save = process_string(price_save[0]) 30 | title = response.css('#itemTitle::text').extract()[0] 31 | breadcrumb = response.css('#vi-VR-brumb-lnkLst ul') 32 | category = breadcrumb.xpath('li//text()').extract()[-1] 33 | breadcrumb = breadcrumb.xpath('string()').extract()[0] 34 | condition = response.css('#vi-itm-cond::text').extract()[0] 35 | watching = response.css('#vi-bybox-watchers span::text').extract() 36 | photo = response.css('#icImg::attr(src)').extract() 37 | item = { 38 | 'url': response.url, 39 | 'title': process_string(title), 40 | 'condition': process_string(condition), 41 | 'breadcrumb': process_string(breadcrumb), 42 | 'photo': response.urljoin(photo[0]) if photo else '', 43 | 'category': process_string(category), 44 | 'price': { 45 | 'original': price_original, 46 | 'save': price_save, 47 | 'current': process_string(price[0]), 48 | }, 49 | } 50 | if watching: 51 | item['watching'] = process_string(watching[0]) 52 | if not (price_original and price_save): 53 | item['price'] = item['price']['current'] 54 | return item 55 | -------------------------------------------------------------------------------- /mss/spiders/ebay/deals.py: -------------------------------------------------------------------------------- 1 | '''MSS: Ebay Deals Spider''' 2 | from scrapy import Request 3 | 4 | from mss.spiders.ebay import BaseSpider 5 | 6 | 7 | class DealsSpider(BaseSpider): 8 | '''MSS: Ebay Deals Spider''' 9 | name = 'EbayDeals' 10 | start_urls = [ 11 | 'http://www.ebay.com/deals/', 12 | ] 13 | 14 | def parse(self, response): 15 | # Spotlight Deal. 16 | hrefs = response.xpath('//div[h2[contains(., "Spotlight Deal")]]//a/@href') 17 | # Trending deals. 18 | hrefs += response.xpath('//div[h2[contains(., "Trending Deals")]]' 19 | '/div/ul/li/div/a/@href') 20 | # Featured Deals. 21 | hrefs += response.css('.ebayui-dne-item-featured-card .col a::attr(href)') 22 | # Other deals. 23 | hrefs += response.css('.dne-pattern-title') \ 24 | .xpath('following-sibling::div[1]') \ 25 | .css('.item a[itemprop="url"]::attr(href)') 26 | for href in hrefs.extract(): 27 | yield Request( 28 | response.urljoin(href), 29 | callback=self.parse_item, 30 | ) 31 | -------------------------------------------------------------------------------- /mss/spiders/ebay/products.py: -------------------------------------------------------------------------------- 1 | '''MSS: Ebay Products Spider''' 2 | from scrapy import Request 3 | 4 | from mss.spiders.ebay import BaseSpider 5 | 6 | 7 | class ProductsSpider(BaseSpider): 8 | '''MSS: Ebay Products Spider''' 9 | name = 'EbayProducts' 10 | start_urls = [ 11 | 'https://www.ebay.com/sch/i.html?_nkw=all+categories&_sac=1#seeAllAnchorLink', 12 | ] 13 | 14 | def parse(self, response): 15 | '''Parse a list of all categories''' 16 | hrefs = response.css('#LeftNavCategoryContainer .cat-link a::attr(href)').extract() 17 | for href in hrefs: 18 | yield Request( 19 | response.urljoin(href), 20 | callback=self.parse_category, 21 | ) 22 | 23 | def parse_category(self, response): 24 | '''Parse specific category items''' 25 | hrefs = response.css('#ListViewInner a[title]::attr(href)').extract() 26 | for href in hrefs: 27 | yield Request( 28 | response.urljoin(href), 29 | callback=self.parse_item, 30 | ) 31 | next_page = response.css('#Pagination a.next::attr(href)').extract() 32 | if next_page: 33 | yield Request( 34 | response.urljoin(next_page[0]), 35 | callback=self.parse_category, 36 | ) 37 | -------------------------------------------------------------------------------- /mss/spiders/facebook/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skynetbinary/major-scrapy-spiders/e532275716d84d639c4dcda0e5450de2cb17788b/mss/spiders/facebook/__init__.py -------------------------------------------------------------------------------- /mss/spiders/facebook/login.py: -------------------------------------------------------------------------------- 1 | '''MSS: Facebook Login Spider''' 2 | from scrapy import FormRequest, Request, Spider 3 | 4 | from mss.utils.strings import process_string 5 | 6 | 7 | class LoginSpider(Spider): 8 | '''MSS: Facebook Login Spider''' 9 | name = 'FacebookLoginSpider' 10 | start_urls = ['https://www.facebook.com/'] 11 | 12 | username = '' 13 | password = '' 14 | # If you have 2-step verification on, 15 | # pass a code from Facebook's 'Code Generator'. 16 | # If not passed, you will later be asked for it. 17 | code = None 18 | 19 | def parse(self, response): 20 | '''Parse login page''' 21 | return FormRequest.from_response( 22 | response, 23 | formxpath='//form[contains(@action, "login")]', 24 | formdata={ 25 | 'email': self.username, 26 | 'pass': self.password, 27 | }, 28 | callback=self.parse_home, 29 | ) 30 | 31 | def parse_home(self, response): 32 | '''Parse user news feed page''' 33 | if response.css('#approvals_code'): 34 | # Handle 'Approvals Code' checkpoint (ask user to enter code). 35 | if not self.code: 36 | # Show facebook messages via logs 37 | # and request user for approval code. 38 | message = response.css('._50f4::text').extract()[0] 39 | self.log(process_string(message)) 40 | message = response.css('._3-8y._50f4').xpath('string()').extract()[0] 41 | self.log(process_string(message)) 42 | self.code = input('Enter the code: ') 43 | self.code = str(self.code) 44 | if not (self.code and self.code.isdigit()): 45 | self.log('Bad approvals code detected.') 46 | return 47 | return FormRequest.from_response( 48 | response, 49 | formdata={'approvals_code': self.code}, 50 | callback=self.parse_home, 51 | ) 52 | elif response.css('input#u_0_1'): 53 | # Handle 'Save Browser' checkpoint. 54 | return FormRequest.from_response( 55 | response, 56 | formdata={'name_action_selected': 'dont_save'}, 57 | callback=self.parse_home, 58 | dont_filter=True, 59 | ) 60 | elif response.css('button#checkpointSubmitButton'): 61 | # Handle `Someone tried to log into your account` warning. 62 | return FormRequest.from_response( 63 | response, callback=self.parse_home, dont_filter=True,) 64 | # Else go to the user profile. 65 | href = response.css('a[title="Profile"]::attr(href)').extract()[0] 66 | return Request( 67 | response.urljoin(href), 68 | callback=self.parse_profile, 69 | ) 70 | 71 | def parse_profile(self, response): 72 | '''Parse user profile page''' 73 | raise NotImplementedError 74 | -------------------------------------------------------------------------------- /mss/spiders/facebook/profile.py: -------------------------------------------------------------------------------- 1 | '''MSS: Facebook Profile Spider''' 2 | from dateutil import parser 3 | from scrapy import Request 4 | 5 | from mss.spiders.facebook.login import LoginSpider 6 | from mss.utils.strings import process_string 7 | 8 | 9 | class ProfileSpider(LoginSpider): 10 | '''MSS: Facebook Profile Spider''' 11 | name = 'FacebookProfileSpider' 12 | 13 | def parse_profile(self, response): 14 | '''Parse user profile page''' 15 | response = html_response(response, 'u_0_13') 16 | href = response.css('a[data-tab-key="about"]::attr(href)').extract()[0] 17 | return Request( 18 | response.urljoin(href), 19 | callback=self.parse_about, 20 | ) 21 | 22 | def parse_about(self, response): 23 | '''Parse user profile about page''' 24 | notifications_count = response.xpath( 25 | 'string(//span[@id="notificationsCountValue"])').extract()[0] 26 | # Extract profile information. 27 | response_ = html_response(response, 'u_0_13') 28 | name = response_.css('#fb-timeline-cover-name::text').extract()[0] 29 | picture = response_.css('.profilePic::attr(src)').extract()[0] 30 | cover = response_.css('.coverPhotoImg::attr(src)').extract()[0] 31 | item = { 32 | 'name': process_string(name), 33 | 'photo': response.urljoin(picture), 34 | 'cover': response.urljoin(cover), 35 | 'url': response.url, 36 | 'phones': [], 37 | 'emails': [], 38 | 'notifications': { 39 | 'count': int(notifications_count or 0), 40 | }, 41 | } 42 | # Extract user `About`. 43 | response_ = html_response(response, 'u_0_2d') 44 | data_list = lambda name: response_.xpath('//span[div[contains(., "%s")][1]]/div' % name) \ 45 | .xpath('string()').extract()[1:] 46 | item['address'] = '\n'.join(data_list('Address')) 47 | dob = data_list('Birthday') 48 | if dob: 49 | item['dob'] = parser.parse(process_string(dob[0])) 50 | for phone in data_list('Phones'): 51 | item['phones'].append(process_string(phone)) 52 | for email in data_list('Email'): 53 | item['emails'].append(process_string(email)) 54 | return item 55 | 56 | 57 | def html_response(response, node_id): 58 | '''Return `response` replaced with HTML placed under code tag''' 59 | body = response.xpath('//code[@id="%s"]' % node_id).extract()[0] 60 | body = body.split('')[0] 61 | return response.replace(body=body.strip()) 62 | -------------------------------------------------------------------------------- /mss/spiders/google/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skynetbinary/major-scrapy-spiders/e532275716d84d639c4dcda0e5450de2cb17788b/mss/spiders/google/__init__.py -------------------------------------------------------------------------------- /mss/spiders/google/playstore.py: -------------------------------------------------------------------------------- 1 | '''MSS: Google Play Store Spider''' 2 | import re 3 | 4 | from dateutil import parser 5 | from scrapy import Request, Spider 6 | 7 | from mss.utils.strings import process_string 8 | 9 | 10 | class PlayStoreSpider(Spider): 11 | '''MSS: Google Play Store Spider''' 12 | name = 'GooglePlayStore' 13 | start_urls = ['https://play.google.com/store/apps'] 14 | 15 | def parse(self, response): 16 | '''Parse all categories apps''' 17 | hrefs = response.css('.child-submenu-link::attr(href)').extract() 18 | for href in hrefs: 19 | yield Request( 20 | response.urljoin(href), 21 | callback=self.parse_category, 22 | ) 23 | 24 | def parse_category(self, response): 25 | '''Parse specific category apps''' 26 | hrefs = response.css('.single-title-link > a::attr(href)').extract() 27 | for href in hrefs: 28 | yield Request( 29 | response.urljoin(href), 30 | callback=self.parse_apps, 31 | ) 32 | 33 | def parse_apps(self, response): 34 | '''Parse a list of apps''' 35 | hrefs = response.css('a[class="title"]::attr(href)').extract() 36 | for href in hrefs: 37 | yield Request( 38 | response.urljoin(href), 39 | callback=self.parse_app, 40 | ) 41 | 42 | def parse_app(self, response): 43 | '''Parse specific app details''' 44 | identifier = re.findall(r'id=(.+)', response.url)[0] 45 | title = response.css('.id-app-title::text').extract()[0] 46 | links = response.css('div[itemprop="author"] a') 47 | categories = [] 48 | for link in links[1:]: 49 | name = link.xpath('string(span)').extract()[0] 50 | url = link.xpath('@href').extract()[0] 51 | categories.append({ 52 | 'name': process_string(name), 53 | 'url': response.urljoin(url), 54 | }) 55 | developer_name = links[0].xpath('string(span)').extract()[0] 56 | developer_url = links[0].xpath('@href').extract()[0] 57 | developer_links = response.css('.dev-link::attr(href)') 58 | developer_email = developer_links.re(r'mailto:(.+)') 59 | developer_website = developer_links.re(r'q=(.+)') 60 | rating = response.css('.score').xpath('@aria-label|text()').extract() 61 | last_updated = response.css('[itemprop="datePublished"]::text').extract() 62 | requirement = response.css('[itemprop="operatingSystems"]::text').extract() 63 | version = response.css('[itemprop="softwareVersion"]::text').extract() 64 | installs = response.css('[itemprop="numDownloads"]::text').extract() 65 | lines = response.css('.show-more-content div::text').extract() 66 | lines = [process_string(line) for line in lines] 67 | screenshots = response.css('.full-screenshot::attr(src)').extract() 68 | screenshots = [response.urljoin(screenshot) for screenshot in screenshots] 69 | cover = response.css('.cover-image::attr(src)').extract()[0] 70 | return { 71 | 'identifier': identifier, 72 | 'title': process_string(title), 73 | 'description': '\n'.join(lines), 74 | 'categories': categories, 75 | 'cover': response.urljoin(cover), 76 | 'screenshots': screenshots, 77 | 'version': process_string((version or [''])[0]), 78 | 'requirement': process_string((requirement or [''])[0]), 79 | 'last_updated': (parser.parse(process_string(last_updated[0])) 80 | if last_updated else ''), 81 | 'installs': process_string((installs or [''])[0]), 82 | 'rating': { 83 | 'note': process_string(rating[0]), 84 | 'count': float(rating[1]), 85 | } if rating else {}, 86 | 'developer': { 87 | 'email': (developer_email or [''])[0], 88 | 'name': process_string(developer_name), 89 | 'website': (developer_website or[''])[0], 90 | 'url': response.urljoin(developer_url), 91 | }, 92 | 'source': response.url, 93 | } 94 | -------------------------------------------------------------------------------- /mss/spiders/instagram.py: -------------------------------------------------------------------------------- 1 | '''MSS: Instagram Spider''' 2 | import json 3 | 4 | from scrapy import Spider 5 | 6 | 7 | class Instagram(Spider): 8 | '''MSS: Instagram Spider''' 9 | name = 'Instagram' 10 | start_urls = [ 11 | 'https://www.instagram.com/nike/', 12 | ] 13 | 14 | def parse(self, response): 15 | '''Parse profile JSON data''' 16 | json_string = response.xpath('//script/text()').re(r'sharedData = (.+);')[0] 17 | return json.loads(json_string) 18 | -------------------------------------------------------------------------------- /mss/spiders/yts.py: -------------------------------------------------------------------------------- 1 | '''MSS: YTS Movies Spider''' 2 | from scrapy import Request, Spider 3 | 4 | from mss.utils.strings import process_string 5 | 6 | 7 | class YTSMoviesSpider(Spider): 8 | '''MSS: YTS Movies Spider''' 9 | name = 'YTSMoviesSpider' 10 | start_urls = [ 11 | 'https://yts.ag/browse-movies', 12 | ] 13 | 14 | def parse(self, response): 15 | '''Parse a list of movies''' 16 | hrefs = response.css('.browse-movie-link::attr(href)').extract() 17 | for href in hrefs: 18 | yield Request( 19 | response.urljoin(href), 20 | callback=self.parse_movie, 21 | ) 22 | next_page = response.xpath('//a[contains(text(), "Next")]/@href').extract() 23 | if next_page: 24 | yield Request(response.urljoin(next_page[0])) 25 | 26 | def parse_movie(self, response): 27 | '''Parse specific movie page''' 28 | info = response.css('#movie-info') 29 | name = info.css('h1::text').extract()[0] 30 | year, genres = info.css('h2::text').extract() 31 | likes = (info.css('#movie-likes::text').extract()[0] or [0])[0] 32 | ratings = info.css('.rating-row') 33 | imdb = ratings.xpath('span[@itemprop="ratingValue"]/text()').extract()[0] 34 | cover = response.css('#movie-poster img::attr(src)').extract()[0] 35 | synopsis = response.css('#synopsis p::text').extract()[0] 36 | synopsis = process_string(synopsis).strip('"') 37 | item = { 38 | 'name': process_string(name), 39 | 'synopsis': synopsis, 40 | 'year': int(year), 41 | 'genres': genres.split(' / '), 42 | 'cover': response.urljoin(cover), 43 | 'rating': { 44 | 'likes': int(likes), 45 | 'imdb': float(process_string(imdb)), 46 | }, 47 | 'download': {'links': []}, 48 | 'similar_movies': [], 49 | 'screenshots': [], 50 | 'directors': [], 51 | 'actors': [], 52 | } 53 | # Add movie directors. 54 | rows = response.css('.directors .list-cast') 55 | for row in rows: 56 | link = row.xpath('div/a') 57 | name = link.css('span[itemprop="name"]::text').extract()[0] 58 | photo = link.xpath('img[not(contains(@src, "default_avatar"))]/@src').extract() 59 | url = link.xpath('@href').extract()[0] 60 | item['directors'].append({ 61 | 'name': process_string(name), 62 | 'photo': response.urljoin(photo[0]) if photo else '', 63 | 'url': response.urljoin(url) 64 | }) 65 | # Add movie actors. 66 | rows = response.css('.actors .list-cast') 67 | for row in rows: 68 | link = row.xpath('div/a') 69 | name = link.css('span[itemprop="name"]::text').extract()[0] 70 | as_name = row.css('.list-cast-info::text').re('as (.+)')[0] 71 | photo = link.xpath('img[not(contains(@src, "default_avatar"))]/@src').extract() 72 | url = link.xpath('@href').extract()[0] 73 | item['actors'].append({ 74 | 'name': { 75 | 'original': process_string(name), 76 | 'appeared_as': process_string(as_name), 77 | }, 78 | 'photo': response.urljoin(photo[0]) if photo else '', 79 | 'url': response.urljoin(url), 80 | }) 81 | # Add ratings (critics and audience). 82 | ratings = info.css('.rating-row') 83 | for rating in ratings: 84 | rating = rating.xpath('span/text()').extract() 85 | if len(rating) == 2: 86 | key = rating[1].replace(' - ', '') 87 | item['rating'].update({ 88 | key: process_string(rating[0]), 89 | }) 90 | # Add download links. 91 | links = info.xpath('p/a') 92 | for link in links: 93 | url = link.xpath('@href').extract()[0] 94 | quality = link.xpath('string()').extract()[0] 95 | item['download']['links'] = { 96 | 'quality': process_string(quality), 97 | 'url': response.urljoin(url), 98 | } 99 | # Add screenshots. 100 | links = response.css('.screenshot a') 101 | for link in links: 102 | url = link.xpath('@href').extract()[0] 103 | url = response.urljoin(url) 104 | if link.xpath('@id'): 105 | item['trailer'] = url 106 | continue 107 | item['screenshots'].append(url) 108 | # Add similar movies. 109 | links = response.css('#movie-related a') 110 | for link in links: 111 | title, year = link.xpath('@title').re(r'(.+) \((\d+)\)') 112 | url = link.xpath('@href').extract()[0] 113 | cover = link.xpath('img/@src').extract()[0] 114 | item['similar_movies'].append({ 115 | 'title': process_string(title), 116 | 'year': int(year), 117 | 'url': response.urljoin(url), 118 | 'cover': response.urljoin(cover), 119 | }) 120 | return item 121 | -------------------------------------------------------------------------------- /mss/utils/__init__.py: -------------------------------------------------------------------------------- 1 | def get_extracted(value, index=0): 2 | try: 3 | return value[index] 4 | except: 5 | return "" 6 | -------------------------------------------------------------------------------- /mss/utils/strings.py: -------------------------------------------------------------------------------- 1 | '''MSS: String utility functions''' 2 | import re 3 | from unidecode import unidecode 4 | 5 | 6 | def process_string(input_string): 7 | '''Remove white space and unicode characters''' 8 | return unidecode(re.sub(r'\s+', ' ', input_string).strip()) 9 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Scrapy==1.4.0 2 | Unidecode==0.4.21 3 | python-dateutil==2.6.1 4 | -------------------------------------------------------------------------------- /scrapy.cfg: -------------------------------------------------------------------------------- 1 | # Automatically created by: scrapy startproject 2 | # 3 | # For more information about the [deploy] section see: 4 | # http://doc.scrapy.org/en/latest/topics/scrapyd.html 5 | 6 | [settings] 7 | default = mss.settings 8 | 9 | [deploy] 10 | #url = http://localhost:6800/ 11 | project = mss 12 | --------------------------------------------------------------------------------