import common

def NormalizeURL(url):
    return url

def MetadataObjectForURL(url):
    return VideoClipObject(title = url)

def MediaObjectsForURL(url):
    cb = Callback(PlayVideo, url = url)
    mo = MediaObject(
        parts = [ PartObject( key = cb ) ]
    )

    return [ mo ]

@indirect
def PlayVideo(url):
    final = common.final_video_url(url)

    if final:
        return IndirectResponse(VideoClipObject, key = final)
    else:
        raise Ex.MediaNotAvailable
