|
import streamlit as st |
|
from instascraper import Post |
|
|
|
hide_streamlit_style = """ |
|
<style> |
|
#MainMenu {visibility: hidden;} |
|
footer {visibility: hidden;} |
|
|
|
.stApp{ |
|
background-image: linear-gradient(115deg,#FFAF00,#FFC500,#FFD600,#FCED00,#F9F380,#F6F7CD); |
|
animation: rotate 7s linear infinite; |
|
} |
|
@keyframes rotate { |
|
100%{ |
|
filter: hue-rotate(-360deg) |
|
} |
|
} |
|
</style> |
|
""" |
|
|
|
st.markdown(hide_streamlit_style, unsafe_allow_html=True) |
|
|
|
class InstagramDownloader: |
|
@staticmethod |
|
def run(): |
|
st.header("") |
|
post_url = st.text_input("Enter Instagram post URL") |
|
start_button = st.button("Start") |
|
|
|
if start_button: |
|
if post_url: |
|
InstagramDownloader.download_video(post_url) |
|
InstagramDownloader.helper_message() |
|
|
|
st.markdown("") |
|
|
|
@staticmethod |
|
def download_video(post_url): |
|
post = Post(post_url) |
|
video_url = post.video_url |
|
|
|
with st.spinner("Downloading..."): |
|
|
|
|
|
|
|
|
|
st.success("Downloaded") |
|
|
|
@classmethod |
|
def helper_message(cls): |
|
st.write( |
|
"> To save to the local computer, " |
|
"click the vertical ... icon (aka hamburger button) in the bottom-right corner (in the video above) and click download." |
|
) |
|
|
|
if __name__ == "__main__": |
|
InstagramDownloader.run() |