• Categories
  • Search
  • unogs
  • Register
  • Login
uNoGS Forum
  • Categories
  • Search
  • unogs
  • Register
  • Login
ad

Part 2: A simple script to pull information

Netflix API Details
netflix api
8
44
95.4k
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A
    admin
    last edited by admin 2 Aug 2017, 15:28 19 Feb 2017, 15:17

    At a very basic level the first thing you need to do is authenticate with your Netflix account, once this is done you can use a combination of the Netflix generated cookie data (will show you how to get this shortly) and the pathEvaluator url

    https://www.netflix.com/api/shakti/0feb190f/pathEvaluator?withSize=true&materialize=true&model=harris
    

    to interact with the API. There are a variety of ways you can pull the cookie information you need. As the cookie data lasts for weeks, I have just been grabbing it from the response headers. To do this, inspect the Netflix web-page as we did in Part 1, click on the pathEvaluator url, click on 'Headers' and under Request Headers copy the cookie data all in one block. (That is the block of data directly after Cookie: <this data>).

    0_1501687671553_1487511068610-cookie.jpeg

    Armed with the pathEvaluator url and our cookie we can now use this information to pull data with our script.

    The basic script I am using for this tutorial is written in python, but the simple tenants hold true for whatever scripting language you choose.

    I am assuming that you have python installed so that is not going to be relevant to this tutorial.

    Without further ado here is the script:

    #!/usr/bin/python
    import requests
    import json;
    
    cookie='<insert your cookie details here>';
    
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0',
    'Cookie':cookie,
    'Accept':'application/json, text/javascript, */*',
    'Accept-Language':'en-GB,en;q=0.5',
    'Accept-Encoding':'gzip, deflate, br',
    'Content-Type':'application/json',
    'DNT':'1',
    'Referer':'https://www.netflix.com'}
    
    genres='0,"to":1'
    rmax='5'
    base='[["newarrivals",{"from":'+genres+'},{"from":0,"to":'+rmax+'},["title","availability"]],["newarrivals",{"from":'+genres+'},{"from":0,"to":'+rmax+'},"boxarts","_342x192","jpg"]]';
    data='{"paths":'+base+'}'
    
    #use the pathEvaluator from your session here
    url='https://www.netflix.com/api/shakti/blah/pathEvaluator?withSize=true&materialize=true&model=harris';
    
    response=requests.post(url,data=data,headers=headers)
    
    rjson=response.json()
    
    videos=rjson['value']['videos']
    for vid in videos:
        if vid.isnumeric():
            vo=videos[vid]
            title=vo['title']
            boxart=vo['boxarts']['_342x192']['jpg']['url']
            isplayable=vo['availability']['isPlayable']
            retjson='{"netflixid":"'+str(vid)+'","title":"'+str(title)+'","playable":'+str(isplayable)+',"boxart":"'+str(boxart)+'"}';
            print retjson
    
    
    

    This script could be a lot more concise but I wanted to make it as simple as possible so its clear exactly what it is doing. If there are any questions or suggestions please reply to this thread.

    good luck!
    -admin

    1 Reply Last reply Reply Quote 0
    • ?
      Guest
      last edited by 21 Feb 2017, 23:29

      Thanks for this, it was very helpful. Just a couple of questions.

      How do you get all the available boxart/image sizes for a title/id (or, if you can't poll them, what are the standard sizes/names)?

      What is less "intrusive", doing individual API calls for different titles or combining multiple ID's/titles in as fewer API calls as possible (for example, requesting availability info for a dozen titles from the database)?

      1 Reply Last reply Reply Quote 0
      • A
        admin
        last edited by 22 Feb 2017, 05:41

        If you are getting lots of details on a title, episodes etc I would query 1 title at a time as the response times get poorer as you stack titles.

        In regard to the boxart, there is no way that I can work out on how to 'dump' all the different formats. What I have is pieced together over months of trial and error.

        Depending on how well these posts are received, I may do an additional appendix of different queries including boxart/image details.

        stay tuned

        -admin

        1 Reply Last reply Reply Quote 0
        • ?
          Guest
          last edited by 22 Feb 2017, 08:00

          What's the method for the 166x233 boxart? That's the only one I actually need, but it's used on by their windows app so I can't inspect it in Chrome.

          H 1 Reply Last reply 7 Mar 2017, 12:26 Reply Quote 0
          • H
            hunterdaver @Guest
            last edited by 7 Mar 2017, 12:26

            Also I would gladly knew the answer to this question

            F 1 Reply Last reply 7 Mar 2017, 13:05 Reply Quote 0
            • F
              FrankieD @hunterdaver
              last edited by 7 Mar 2017, 13:05

              @hunterdaver
              One of the ways I've found is to use the Windows 8.1 Store app API at

              https://api-global.netflix.com/win/2.20/get?method=get&path=URLENCODED_PATH&format=json&progressive=true&languages=en-US
              

              Requesting the path ["shows","80133311","browse"] will return:

              {
              	"path": ["shows",
              	"80133311",
              	"browse"],
              	"value": {
              		"title": "Riverdale",
              		"box": "http://art-2.nflximg.net/64e83/a6af224ff11187c2cbfb82d996864b68f4864e83.jpg"
              	}
              }
              
              H ? 2 Replies Last reply 14 Mar 2017, 08:04 Reply Quote 0
              • ?
                Guest
                last edited by 12 Mar 2017, 08:28

                @admin said in Part 2: A simple script to pull information:

                lot more concise but I wanted to ma

                I would like to pull just the titles /subtitle/he for example.
                i'd like to pull all title in that case

                how can it be done?

                1 Reply Last reply Reply Quote 0
                • H
                  hunterdaver @FrankieD
                  last edited by 14 Mar 2017, 08:04

                  @FrankieD Thank you very much for your help :) I have another question on how to download information on the availability of subtitles and languages? I can see this information appears in the source page. Is there a way to download the information from the API?

                  F 1 Reply Last reply 14 Mar 2017, 23:10 Reply Quote 0
                  • F
                    FrankieD @hunterdaver
                    last edited by 14 Mar 2017, 23:10

                    @hunterdaver Subtitle and language info is available on the standard browser API described in the first post. The API call when you open a single item looks something like this:

                    [["videos",80097003,["availability","synopsis","queue","episodeCount","info","maturity","runtime","seasonCount","releaseYear","userRating","numSeasonsLabel","bookmarkPosition","watched"]]
                    

                    Add "subtitles" and "audio" to the this list. It used to be there until a few days (weeks?) ago, but for some reason they removed the language info and availability from the detailed info page.

                    1 Reply Last reply Reply Quote 2
                    • ?
                      Guest
                      last edited by 29 Jun 2017, 06:40

                      @admin said in Part 2: A simple script to pull information:

                      boxart=vo['boxarts']['_342x192']['jpg']['url']

                      Hello!

                      Can you please reveal me how to get that poster image 284x398
                      https://art-s.nflximg.net/b6c55/c2df424e262059a97932661a43e4c105decb6c55.jpg

                      I couldnt find it, great work anyway. Thanks in advance!

                      Best regards

                      F 1 Reply Last reply 10 Jul 2017, 11:43 Reply Quote 0
                      • F
                        FrankieD @Guest
                        last edited by 10 Jul 2017, 11:43

                        said in Part 2: A simple script to pull information:

                        Can you please reveal me how to get that poster image 284x398
                        https://art-s.nflximg.net/b6c55/c2df424e262059a97932661a43e4c105decb6c55.jpg

                        Use the Windows 10 store app API, e.g.

                        httpx://api-global.netflix.com/win/uwa/X.XX?falcor_server=0.1.0&materialize=true&winx_lang=en-GB&method=get&path=PATH
                        

                        Using the path: ["series","NID",["summary"]] will give you large and small boxshots and vertical posters. You'll want the vertical/large.

                        1 Reply Last reply Reply Quote 0
                        • ?
                          Guest
                          last edited by 11 Jul 2017, 17:20

                          Thanks for the reply. Unfortunately im getting HTTP ERROR 403.

                          I am trying to get with curl as get request
                          https://api-global.netflix.com/win/uwa/2.20?falcor_server=0.1.0&materialize=true&winx_lang=en-GB&method=get&path=%5b%22shows%22%2c%2280133311%22%2c%22browse%22%5d

                          Was trying to add headers with data from chrome request... but with no success. Any idea, what i am doing wrong?

                          Thanks in advance

                          F 1 Reply Last reply 12 Jul 2017, 18:37 Reply Quote 0
                          • F
                            FrankieD @Guest
                            last edited by FrankieD 12 Jul 2017, 18:37 12 Jul 2017, 18:37

                            Well, for one, the API path seems weird to me, can't make out if its the Win8.1 API (version 2.20 or higher) or the Win10 API (6.20 or higher).
                            However, 403 means you're not authorising properly. Perhaps they patched the system so that the same cookie will not work across different APIs. My advice for you would be to grab the cookies from the Windows 10 app and try those.

                            1 Reply Last reply Reply Quote 0
                            • ?
                              Guest
                              last edited by 29 Jul 2017, 19:07

                              What would be the best way to simply check if a particular title is available? Use the pathEvaluator to do a search query?

                              A 1 Reply Last reply 30 Jul 2017, 19:14 Reply Quote 0
                              • A
                                admin @Guest
                                last edited by 30 Jul 2017, 19:14

                                https://unogs.com

                                ? 1 Reply Last reply 2 Aug 2017, 14:20 Reply Quote 0
                                • ?
                                  Guest @admin
                                  last edited by 2 Aug 2017, 14:20

                                  @admin Yes thank you :) I mean pulling the information directly from Netflix like in the script you posted.

                                  A 1 Reply Last reply 2 Aug 2017, 15:02 Reply Quote 0
                                  • A
                                    admin @Guest
                                    last edited by 2 Aug 2017, 15:02

                                    The following JSON should do it:
                                    $search='your search string'
                                    $min='start of your search count, 0 typically'
                                    $max='max results'
                                    $at='your auth code discussed previously (may not be necessary)'

                                    {"paths":[["search","$search",{"from":$min,"to":$max},["availability"]],["search","$search",{"from":$min,"to":$max},"boxarts","_342x192","webp"]],"authURL":"$at"}
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • ?
                                      Guest
                                      last edited by 12 Aug 2017, 16:33

                                      Thank you! I included "titles" as well (after "$search") and it worked for me. The auth code wasn't necessary.

                                      1 Reply Last reply Reply Quote 0
                                      • ?
                                        Guest
                                        last edited by 11 Sept 2017, 02:33

                                        How do you get the information about WHEN titles will become available or expire?

                                        A 1 Reply Last reply 14 Sept 2017, 12:26 Reply Quote 0
                                        • A
                                          admin @Guest
                                          last edited by 14 Sept 2017, 12:26

                                          availabilityEndDateNear

                                          ["subtitles","audio","availability","availabilityEndDateNear"]
                                          

                                          Now easy way to get when new titles are available that I know of...

                                          S 1 Reply Last reply 2 Oct 2017, 15:54 Reply Quote 0
                                          • First post
                                            Last post