checkaayush
9/18/2016 - 3:30 PM

Script I used to rename all F.R.I.E.N.D.S. epsiodes by fetching names from Wikipedia

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()