File size: 1,812 Bytes
2da79a4
 
 
 
 
 
 
 
40e3f70
 
2da79a4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40e3f70
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
import gradio as gr
from extractor import process_video, RESOLUTIONS

with gr.Blocks() as demo:
    gr.Markdown("""
    # 🎬 Vid-Take PRO

    🚨 **Access Required:**  
    πŸ‘‰ [**Get Access Here**](https://franciscoel.gumroad.com/l/hpgcv)  
    *(Instant password delivery after verification)*

    πŸ“§ Contact: Francisnoel4@gmail.com  

    ---
    βš–οΈ **Legal Notice:**  
    This tool is for educational, personal, and parody use only.  
    Commercial use of extracted frames is prohibited unless it complies with [U.S. Fair Use Law](https://www.law.cornell.edu/uscode/text/17/107).
    """)

    password = gr.Textbox(label="Enter Access Password", type="password")
    status = gr.Textbox(label="Access Status", interactive=False)

    with gr.Column(visible=False) as tool_ui:
        with gr.Row():
            video_input = gr.File(label="Upload Video File", file_types=[".mp4", ".mov", ".webm"])
            fps_input = gr.Number(value=1, label="Frames Per Second (FPS)")
            resolution_input = gr.Dropdown(choices=list(RESOLUTIONS.keys()), value="Original", label="Export Resolution")

        with gr.Row():
            extract_button = gr.Button("Extract Frames & Download")
            output_file = gr.File(label="Download .zip of Frames")

        extract_button.click(
            fn=process_video,
            inputs=[video_input, fps_input, resolution_input],
            outputs=output_file
        )

    def check_pw(pw):
        if pw == "frame123":
            return "βœ… Access Granted", gr.update(visible=True)
        else:
            return "❌ Incorrect Password", gr.update(visible=False)

    unlock_button = gr.Button("Unlock Tool")
    unlock_button.click(fn=check_pw, inputs=password, outputs=[status, tool_ui])

if __name__ == "__main__":
    demo.launch()