Skip to content

Instantly share code, notes, and snippets.

@checkaayush
Created September 18, 2016 15:30
Show Gist options
  • Save checkaayush/dd3b2dd1ed734b8b22bd096d094f5dac to your computer and use it in GitHub Desktop.
Save checkaayush/dd3b2dd1ed734b8b22bd096d094f5dac to your computer and use it in GitHub Desktop.
Script I used to rename all F.R.I.E.N.D.S. epsiodes by fetching names from Wikipedia
from bs4 import BeautifulSoup
import requests
import os
def get_episode_names(season):
episodes = {}
print "Making request..."
url = "https://en.wikipedia.org/wiki/Friends_(season_%s)#Episodes" % season
print url
r = requests.get(url)
soup = BeautifulSoup(r.text)
rows = soup.find_all('tr', {'class': 'vevent'})
for row in rows:
episode_num = row.find('td').get_text()
episode_name = row.find('td', {'class': 'summary'}).get_text().strip('"')
# episodes.append(episode_name.strip('"'))
episodes.update({episode_num: episode_name})
return episodes
def rename(episodes):
for f in os.listdir('.'):
if f.endswith('mkv'):
episode_num = int(f.split('.')[1].split('e')[1])
# print episode_num
episode_name = episodes[str(episode_num)]
print "Episode %d -> %s" % (episode_num, episode_name.strip("'"))
os.rename(f, str(episode_num) + '_' +
episodes[str(episode_num)] + ".mkv")
def main():
season = raw_input("Enter season number: ")
episodes = get_episode_names(season)
print "Got all episode names. Renaming..."
print episodes
rename(episodes)
print "Done renaming! Enjoy."
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment