Spaces:
Running
Running
File size: 3,066 Bytes
9244222 ef92443 72ac633 cc0613d 9244222 10cbb02 9244222 dae8a39 9244222 dae8a39 9244222 b276a18 9244222 b276a18 36f134b b276a18 36f134b 6044ebd 10cbb02 87b5262 f8706a3 8cc72fc ceb9108 10cbb02 6044ebd f8706a3 b276a18 6044ebd f8706a3 6044ebd a71b012 c632686 6044ebd b276a18 6044ebd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
import gradio as gr
import urllib
from urllib.parse import urlparse, parse_qs
from playlist_duration import playlist_duration_func
from average_duration import playlist_average_duration_func
from playlists_mismatch import playlists_mismatch_func
def playlist_duration_calculator(playlist_link, calculation_type):
if calculation_type == "Total Duration":
result = playlist_duration_func(playlist_link)
return f"Total Duration: {result}"
elif calculation_type == "Average Duration":
result = playlist_average_duration_func(playlist_link)
return f"Average Duration: {result}"
playlist_link_input = gr.inputs.Textbox(label="Playlist Link")
calculation_type_input = gr.inputs.Radio(["Total Duration", "Average Duration"], label="What to calculate?")
outputs = gr.outputs.Textbox(label="Result")
heading = "YouTube Playlist Duration Calculator"
description = "Enter a YouTube playlist link and choose the calculation type to calculate its total duration or average duration."
interface1 = gr.Interface(
fn=playlist_duration_calculator,
inputs=[playlist_link_input, calculation_type_input],
outputs=outputs,
title=heading,
description=description,
examples=[
["https://www.youtube.com/playlist?list=PL-osiE80TeTsWmV9i9c58mdDCSskIFdDS", "Total Duration"],
["https://www.youtube.com/playlist?list=PL-osiE80TeTtoQCKZ03TU5fNfx2UY6U4p", "Average Duration"],
],
theme="compact",
)
second_heading = "YouTube Playlist Mismatch Calculator"
second_description = "Enter two YouTube playlist links (without quotation marks) to compare their contents and find the mismatch."
mismatch_outputs = gr.outputs.Textbox(label="Mismatch between two playlists")
def playlist_mismatch_calculator(playlist_link_1, playlist_link_2, output_options):
result = playlists_mismatch_func(playlist_link_1, playlist_link_2, output=output_options)
playlist1name = result[2]
playlist2name = result[3]
text = 'Present in {}, not in {} :- \n{} \n \nPresent in {}, not in {} :-\n {}'.format(result[2],result[3], result[0], result[3], result[2], result[1])
return f"Mismatch Result between the two playlists are as follows: -\n\n {text}"
playlist_link_1_input = gr.inputs.Textbox(label="Playlist Link 1")
playlist_link_2_input = gr.inputs.Textbox(label="Playlist Link 2")
output_options = gr.inputs.Radio(["id", "link", "name"], label="Output Options")
interface2 = gr.Interface(
fn=playlist_mismatch_calculator,
inputs=[playlist_link_1_input, playlist_link_2_input, output_options],
outputs=mismatch_outputs,
title=second_heading,
description=second_description,
examples=[
["https://www.youtube.com/playlist?list=PL-osiE80TeTsWmV9i9c58mdDCSskIFdDS", "https://www.youtube.com/playlist?list=PL-osiE80TeTtoQCKZ03TU5fNfx2UY6U4p"],
],
theme="compact",
)
# interface1.launch()
# interface2.launch()
combinedinterface = gr.TabbedInterface([interface1,interface2],['Playlist Total and Average Duration', 'Playlist Mismatch'])
combinedinterface.launch() |