- Pubié le
Êtes-vous à court d'idées ?
- Authors
- Nom
- Quentin PETIT
Comment trouver des idées interessantes à traiter ?
Parfois les idées fussent, l'impression d'être submergé à ne plus quoi savoir choisir.
Parfois c'est le vide. L'angoisse de la page blanche.
Dans ce balancement permanent entre trop-plein et pénurie, une constante demeure : l'écoute.
Quoi de mieux que de s'en remettre à ceux qui attendent nos idées ? Les auditeurs, les spectateurs, les lecteurs. Ils sont souvent les mieux placés pour suggérer ce à quoi nous n'avions pas pensé.
J'ai créé un script qui répond à ce problème. Pour chaque lien YouTube répertorié dans 'list_of_videos.csv', le programme génère un fichier compilant les sujets de vidéos proposés par les auditeurs.
Note: La librairie youtube-comment-downloader doit être installé afin que le programme fonctionne.
import requests
import re
import csv
import os
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
FILE = 'list_of_videos.csv'
OUTPUT_DIR = 'export'
def get_youtube_title(url):
headers = {'User-Agent': USER_AGENT}
response = requests.get(url, headers=headers)
if response.status_code != 200:
return None
match = re.search(r'<title>(.*?)</title>', response.text, re.DOTALL | re.IGNORECASE)
if match:
title = match.group(1)
if title.endswith(' - YouTube'):
title = title[:-10]
return title.strip()
return None
csv_reader = csv.reader(open(FILE, 'r'))
for row in csv_reader:
title = get_youtube_title(row[0])
title = title.replace(' ', '_').lower()
output_file = f'{OUTPUT_DIR}/{title}.json'
if os.path.exists(output_file):
print(f"File {title}.json already exists, skipping...")
continue
print(f"Video URL: {row[0]}, Title: {title}")
os.system(f'youtube-comment-downloader --youtubeid {row[0].split("v=")[-1]} --output {output_file}')
with open(output_file, 'r') as f:
lines = f.readlines()
with open(output_file, 'w') as f:
for line in lines:
if 'video about' in line or 'video on' in line:
f.write(line)
print(f"Filtered comments saved to {title}_filtered.json")
os.remove(output_file)