Vidsrc / app.py
slimshadow's picture
Update app.py
4429eba verified
import streamlit as st
from imdb import IMDb
# Initialize IMDb object
ia = IMDb()
# Function to get movie embed URL
def get_movie_embed(imdb_id, ds_lang=None, sub_url=None):
base_url = "https://vidsrc.xyz/embed/movie"
params = f"?imdb={imdb_id}"
if ds_lang:
params += f"&ds_lang={ds_lang}"
if sub_url:
params += f"&sub_url={sub_url}"
return f"{base_url}{params}"
# Function to get TV show embed URL
def get_tv_embed(imdb_id, season=None, episode=None, ds_lang=None, sub_url=None):
base_url = "https://vidsrc.xyz/embed/tv"
params = f"?imdb={imdb_id}"
if season and episode:
return f"{base_url}/{imdb_id}/{season}-{episode}"
if ds_lang:
params += f"&ds_lang={ds_lang}"
if sub_url:
params += f"&sub_url={sub_url}"
return f"{base_url}{params}"
# Streamlit app layout
st.title("WATCH ONLINE MOVIES FOR FREE")
st.write("Search for a movie or TV show")
# Input for search type
search_type = st.radio("Select type", ("Movie", "TV Show"))
# Input for search query
query = st.text_input("Search IMDb", "Enter the name of a movie or TV show")
# Optional inputs for additional parameters
ds_lang = st.text_input("Default subtitle language (Leave it empty if you do not want to use it)", "")
sub_url = st.text_input("Subtitle URL (Leave it empty if you do not want to use it)", "")
# Search and display results
if st.button("Search"):
if query:
# Perform search
results = ia.search_movie(query)
# Display search results
if results:
st.write(f"Found {len(results)} results. Displaying up to 20 results:")
for idx, result in enumerate(results[:5]): # Limit to 20 results
title = result.get('title', 'Unknown title')
year = result.get('year', 'N/A')
imdb_id = result.movieID
# Fetch poster URL
ia.update(result, info=['main'])
poster_url = result.get('full-size cover url', None)
# Display poster, title, and year
st.write(f"{idx + 1}. {title} ({year})")
if poster_url:
st.image(poster_url, width=150)
# Generate embed URL based on search type
if search_type == "Movie":
embed_url = get_movie_embed(imdb_id, ds_lang, sub_url)
else:
embed_url = get_tv_embed(imdb_id, ds_lang=ds_lang, sub_url=sub_url)
# Display the embed URL
st.write("URL:")
st.write(embed_url)
st.write("---")
else:
st.write("No results found.")
else:
st.write("Please enter a search query.")