abhichaudharii / jiosaavn-python

An unofficial Python3 wrapper for JioSaavn API, a popular Indian music streaming service..
MIT License
2 stars 1 forks source link

Non async function #3

Open arsaboo opened 1 year ago

arsaboo commented 1 year ago

I am trying to retrieve songs from a playlist and here's the function that I have right now (running it in Jupyter notebook):

import json
import asyncio
from jiosaavn import JioSaavn
import nest_asyncio

saavn = JioSaavn()
nest_asyncio.apply()

# Define a function to get playlist songs by id
async def get_playlist_songs(playlist_url):
    # Use the async method from saavn
    songs = await saavn.get_playlist_songs(playlist_url)
    # Return a list of songs with details
    return songs

playlist_url = "https://www.jiosaavn.com/featured/weekly-top-songs/8MT-LQlP35c_"
data = asyncio.run(saavn.get_playlist_songs(playlist_url, page=1, limit=100))

It works but gives me a warning UserWarning: Unclosed <httpx.AsyncClient object at 0x000001DDD757F850>. See https://www.python-httpx.org/async/#opening-and-closing-clients for details.

A couple of questions for you:

  1. How would you modify the code to run without using asyncio? I tried a few combinations but I kept getting errors. Appreciate your input.
  2. Can we remove page=1, limit=100 from the get_playlist_songs function call?
abhichaudharii commented 1 year ago

Thanks for asking and reporting the issue. You are getting that warning because I made a mistake while writing the wrapper. I will push a fix for that soon.

You cant call async functions without using asyncio. I'm planning to release synchronous and asynchronous functions. Then you won't need asyncio.

Yes, you can remove page=1, limit=100 those are optional arguments. My example shows the use of those keyword arguments because I wanted to show that you can limit the results. But you don't need to pass them always

arsaboo commented 1 year ago

Thanks @abhichaudharii It would be great to have this.

arsaboo commented 1 year ago

Any update on this and the other endpoints?

abhichaudharii commented 1 year ago

The new release is still in WIP and will be released in 2nd week of April month.