Spaces:
Paused
Paused
| 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.") | |