get playlist return 404 if not ready
semaphore need not release, it's in share memory