in movie_search_metadata/demo_app/frontend/main.py [0:0]
def scene_search():
st.write('# Scene Search')
# Show "Search Query" and "Top N" in a single row
col1, col2 = st.columns((7, 1))
with col1:
scene_search_query = st.text_input('Search Query', key='scene_search')
with col2:
top_n = st.number_input(
'Top N', min_value=1, max_value=3, value=1,
help='Top N とは ... シーンの検索対象最大動画数'
'\n\n'
'まず検索文の回答に適した動画が全動画を対象に検索され\n'
'その後、上位 N 個の動画からシーンが検索されます。'
)
if st.button('Search', key='scene_search_button'):
st.write(f'Searching for: {scene_search_query}')
if scene_search_query:
try:
results = make_request(
'scene_search',
params={'query': scene_search_query, 'top_n': top_n})['results']
if results:
st.write('## Result')
for c, result in enumerate(results):
video_id = c + 1
st.write(f'Video ID: {video_id}')
st.write(f"Title: {result['title']}")
st.write(f"Description: {result['Description']}")
st.write(f"Timestamp: {result['Timestamp']}")
start_time, end_time = get_start_end_seconds(result['Timestamp'])
signed_url = result['signed_url']
st.video(signed_url, start_time=start_time, end_time=end_time)
st.divider()
else:
st.write('No results found.')
except requests.exceptions.RequestException as e:
st.error(f'An error occurred while searching: {e}')